CS/Network

[CS Network] 웹 브라우저와 메시지 주요 용어 정리

반응형

참고서적 : 성공과 실패를 결정하는 1%의 네트워크 원리

브라우저

  • 인터넷상에서 웹에 연결시켜 주는 윈도 기반의 소프트웨어.
  • URL을 해독하거나 HTTP메소드를 만들지만, 메시지를 송출하는 기능은 없으므로 요청을 보내면 처리는 OS가 한다.

URL(Uniform Request Locator)

  • 인터넷에서, 어느 사이트에 접속하기 위해서 입력해야 하는, 주소를 포함한 일련의 문자.
  • 상위 개념으로는 URI 가 있으며, 이는 URL과 URN이 있다.

프로토콜

  • 특정 규약이나 약속, 프로세스를 통칭하며 네트워크에서는 네트워크 통신을 위한 규약을 뜻한다.

HTTP

  • Hyper Text Transfer Protocol
  • 크게 요청, 응답 프로토콜이 있으며 method, status code등 주요개념이 있다.

HTTP 프로토콜 작동 순서

  • 서버로 리퀘스트 메시지를 보내는 동작으로 구성되며, URL + method로 요청 동작이 결정된다.
  • request message : 전송하려는 데이터 + 메소드
  • response message : 스테이터스코드 + 헤더파일 + 페이지 데이터(HTML, JSON ,,)

Status code(스테이터스 코드)

  • 일반적으로 200번대는 요청이 성공, 400번대는 클라이언트의 오류, 500번대는 서버측의 오류이다.
  • 자세한 내용은 MDN 문서에서 확인이 가능하다.

TCP/IP

  • TCP : 전송 제어 프로토콜로 전송 계층에 위치하며 네트워크 정보 전달을 통제하는 핵심 프로토콜
  • IP : 패킷 교환 네트워크에서 정보를 주고받는데 사용하는 정보 위주의 규약이며 네트워크 계층에서 호스트의 주소지정과 패킷 분할 및 조립 기능을 담당

IP 주소

  • 네트워크 번호 (서브넷 번호) + 호스트 번호
  • 서브넷 : 네트워크 번호는 분할하여 사용하는데 이때 각각 네트워크가 분할되어진 작은 네트워크를 subnet 이라고 한다.
  • IPV4 = 32bit, 각 비트를 .으로 구분하여 사용, IPV6 = 128 bit, 각 비트를 :으로 구분하여 사용
  • 넷마스크 : 네트워크 번호와 호스트 번호를 구분해주기 위해 덧붙히는 값 => 255.255.255.0

DNS(Domain Name System)

  • 요청을 보내는 주소는 2가지로 표현된다. 일반적으로 사용자는 도메인명(www.naver.com)을 사용하고 라우터는 IP주소(127.168.0.5)를 사용한다.
  • 이때 도메인과 IP를 대응 시켜주는것이 DNS로 이를 통해 라우터가 동작한다.

리졸버(DNS resolver)

  • socket 라이브러리에 들어있는 부품화한 프로그램으로, DNS 서버에 대한 DNS 클라이언트의 역할을 한다.
  • IP 주소를 조사하는 네임 리졸루션을 실행하는 것이 리졸버이다.

리졸버의 작동원리

  1. 애플리케이션 프로그램(웹 브라우저)
  2. Socket 리졸버를 호출하여 도메인 명을 넘겨줌
  3. 리졸버가 DNS서버로 조회 요청을 보냄
  4. DNS서버에서 조회 후 IP주소를 응답으로 보냄
  5. 리졸버가 응답 내용을 해독하고 IP주소를 추출 및 어플리케이션에게 전달
  6. 어플리케이션 프로그램은 메모리 영역에 해당 IP주소를 저장

DNS 서버의 기본 동작

  • 도메인 ↔ IP : 클라이언트에서 *조회 메시지(이름 + 클래스 + 타입) 를 받고, 서버에 등록된 도메인 명과 IP 주소의 대응표인 리소스 레코드 를 조사하여 회답한다.
  • 조회 메시지
    • 이름 : 서버나 메일 배송 목적지와 같은 이름.
    • 클래스 : IN
    • 타입 : 타입에 따라 클라이언트에 회답하는 정보가 달라진다.

도메인 계층

  • 한 대의 DNS 서버에 모든 정보를 등록할 수 없으므로 분산시켜 다수의 DNS에 저장, 연대한다.

HTTP vs HTTPS

  • HTTP는 인터넷에서 하이퍼텍스트를 전송하기 위해 통신 규약입니다. HTTPS는 HTTP의 보안 취약점을 하기위해 보안 소켓(Secure socket)을 추가한 프로토콜입니다.
  • HTTP는 요청을 보낼때 파라미터가 url로 붙거나, 바디에 그대로 노출이되는데, HTTPS는 그걸 암호화한다.
  • 근데 너무 많이 사용하면 보안을 위해 확인 동작이 들어가서 성능이 떨어지므로 적절한 사용이 필요하다

RESTful

  • Restful API는 REST 아키텍쳐의 원리를 따르는 API를 말합니다. 기본적인 규칙으로는 URI를 통해 정보의 리소스를 식별하고, HTTP Method를 통해 리소스에 대한 행위를 규정해야 합니다.
반응형