HTTP 웹 기본 지식 step-2 URI (URL, URN), 요청과 응답의 기초 흐름

배인성·2022년 5월 4일
0

HTTP

목록 보기
2/7

URI

나는 평소에 남들처럼 URL만 알았지 URI라는게 있는지 처음 알았다.

심지어 URI는 URL을 포함하는 개념이었다.

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

라고 한다!

이러한 URI는 한마디로 자원(리소스)를 식별하는 통합된 방법인데, 크게 두 가지로 나뉜다.

  1. URI
    1-1. URL(Uniform Resource Locator) : 리소스가 있는 위치를 지정
    1-2. URN(Uniform Resource Name) : 리소스에 이름을 지정

URN은 잘 안쓰고 다들 아는 URL이 사람들이 보통 아는 것이다.

다이어그램으로 표현하자면 이렇게 된다.

URL의 구성

URL은 프로토콜, 호스트 명, 포트 번호(Port), 경로(Path), 쿼리 파라미터 총 다섯 가지로 구성된다.

예를 들어, https://www.google.com:443/search?q=hello&hl=ko 라는 URL이 있다고 가정하자.

  • 프로토콜 : https
  • 호스트명 : www.google.com
  • 포트번호 : 443 (얘는 생략가능! 프로토콜 디폴드 값이 있음 http -> 80 https -> 443 등등)
  • 경로 : /search
  • 쿼리 파라미터 : q=hello&hl=ko (key=value 형태)

웹 브라우저의 요청 흐름

사용자가 https://www.google.com:443/search?q=hello&hl=ko 링크를 요청했다고 가정하자.

  1. DNS 서버를 뒤져서 구글의 ip 주소와, 프로토콜을 보고 포트 번호를 받아온다.
  2. 웹 브라우저가 HTTP 요청 메세지를 생성한다.
    2-1. 이 메세지에는 HTTP 메서드(get, post, put~), 경로, 쿼리 파라미터, 호스트 등등 적혀있음
  3. 소켓 라이브러리를 통해 TCP/IP 연결 (SYN, SYN/ACK, ACK) 후 데이터를 전달한다.
  4. OS 계층에서 HTTP 메세지를 포함한 TCP/IP 패킷을 생성한다.
  5. 인터넷으로 흘러감
  6. 서버도 html 데이터, TCP/IP 패킷 등등 들어간 응답 패킷을 생성한다.
  7. 클라이언트는 응답 패킷을 뜯어서 뷰를 출력한다.

음.. 좀 재미있다 ㅋㅋ

profile
부지런히 살자!!

0개의 댓글