본문 바로가기
IT/Network

HTTP 웹 기본지식-2

by 밤톨엽 2022. 3. 13.

모든 개발자를 위한 HTTP 웹 기본지식 강의를 완강하고 해당 내용을 정리하기 위해 글을 작성했습니다.

HTTP 웹 기본지식-1 내용과 이어지며 PORT, DNS, URI  대해서 내용을 정리하였습니다.


PORT

같은 IP 내에서 프로세스를 구분


패킷 정보 안에 출발지 Ip, Port 정보가 같이 존재한다.

PORT 예시
PORT 예시

예시)

  • 아파트: Ip 주소
  • 101동 101호: Port 번호 

참고

  • 0 ~ 65535: 할당 가능
  • 0 ~ 1023: 잘 알려진 포트로 사용하지 않는 것이 좋음
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

DNS

도메인 네임 시스템(Domain Name System)
  • 전화번호부
  • 도메인 명을 IP주소로 변환

IP로만 사용한다면 IP주소는 변경될 수 있고 사람이 기억하기 어려울 수 있다.

DNS는 해당 문제들을 보완해준다.

DNS 예시
DNS 예시

DNS 조회 8단계

  • 사용자가 웹 브라우저에 example.com을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신
  • 이어서 확인자가 DNS 루트 이름 서버(.)를 쿼리
  • 다음으로, 루트 서버가, 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버(예: .com 또는 .net)의 주소로 확인자에 응답
  • 이제, 확인자가 .com TLD에 요청
  • 이어서, TLD 서버가 도메인 이름 서버(example.com)의 IP 주소로 응답
  • 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냄
  • 이제, example.com의 IP 주소가 이름 서버에서 확인자에게 반환
  • 이어서, DNS 확인자가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답

DNS에 대해 보다 좀 더 자세히 알고싶다면 오른쪽 링크를 참고할 수 있다 -> DNS 작동원리

URI(Uniform Resource Identifier)

URI? URL? URN?

“URI는 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있다”

rfc3986 공식 문서 - 1.1.3. URI, URL, and URN

URI
URI

URI

  • Uniform: 리소스 식별하는 통일된 방식
  • Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
  • Identifier: 다른 항목과 구분하는데 필요한 정보

URL, URN

  • URL - Locator: 리소스가 있는 위치를 지정
  • URN - Name: 리소스에 이름을 부여
  • 위치는 변할 수 있지만, 이름은 변하지 않는다.
  • urn:isbn:8960777331 (어떤 책의 isbn URN)
  • URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음

URL 전체 문법


  • 프로토콜(https)
  • 호스트명(www.google.com)
  • 포트 번호(443)
  • 패스(/search)
  • 쿼리 파라미터(q=hello&hl=ko)

웹 브라우저 요청 흐름

  • DNS 조회 (IP 주소 검색)
  • HTTPS PORT 생략, 443
  • HTTP 요청 메시지 생성
  • HTTP 응답 메세지 받음
  • 응답 메세지가 HTML이라면 웹 브라우저가 HTML 렌더링

웹 브라우저 요청
웹 브라우저 요청

HTTP 메시지 생성?

  • 웹 브라우저가 HTTP 메세지 생성
  • SOCKET 라이브러리를 통해 전달
    • A: TCP/IP 연결(IP, PORT)
    • B: 데이터 전달
  • TCP/IP 패킷 생성, HTTP 메시지 포함

HTTP 요청 메시지
HTTP 요청 메시지

참고자료

 

다음 내용은 HTTP 기본에 대해서 HTTP 웹 기본지식-3 파트에서 정리하도록 하겠습니다.

'IT > Network' 카테고리의 다른 글

HTTP 웹 기본지식-5  (0) 2022.04.16
HTTP 웹 기본지식-4  (0) 2022.03.26
HTTP 웹 기본지식-3  (0) 2022.03.18
HTTP 웹 기본지식-1  (0) 2022.03.10