본문 바로가기

기타/HTTP

URI와 웹 브라우저 요청 흐름 알아보기

 

URI (Uniform Resource Identifier)


 

URI

특정 리소스를 식별하는 통합 자원 식별자로, 웹 기술에서 사용하는 논리적 혹은 물리적 리소스를 식별하는 고유한 문자열 시퀀스

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

URL /URN

웹 주소

  • URL : Locator 리소스가 있는 위치를 지정
  • URN : Name 리소스에 이름을 부여
    • 위치는 변할 수 있지만 이름은 변하지 않는다. URN 이름만으로 실제 리소스를 찾는 방법이 보편화 되어있지 않아 거의 URL만 사용한다.

 

URL 구조


scheme://[userinfo@]host[:port][/path][?query][#fragment]
ex <https://www.google.com/search?q=hello&hI=ko>
  • scheme
    • 사용할 프로토폴, 웹에서는 http or https 사용
  • userinfo@
    • URL에 사용자 정보를 포함해서 인증
    • 거의 사용하지 않음
  • host
    • 호스트명, 도메인명 or IP 주소를 직접 사용 가능
  • [:port]
    • 접속 포트
    • http 80, https 443 주로 사용, 포트 생략 가능
  • /path
    • 리소스 경로, 계층적 구조
    • ex ) /members/100
  • [?query]
    • 접근할 대상에 전달하는 추가적 정보(파라미터)
    • key=value 형태
      • ?로 시작, &으로 추가 가능
      • ? keyA=valueA&keyB=valueB
  • #fragment
    • 메인 리소스 내 존재하는 서브 리소스에 접근할 때 식별하기 위한 정보
    • html 내부 북마크 등에 사용

 

웹 브라우저 요청 흐름


 

 

  1. 웹 브라우저가 DNS를 조회 - IP와 port 정보를 찾는다.
  2. HTTP 요청 메시지를 생성한다
    • HTTP 요청 메시지 전송
    • (1) 애플리케이션 계층 : 웹 브라우저가 HTTP 메시지를 생성한다. (2) 전송 계층 : socket 라이브러리를 통해 전달 / 3 way handshake로 연결 (TCP/IP) (3) TCP/IP 패킷 생성 : HTTP 전송 데이터가 포함된다.
  3. HTTP 요청 메시지가 포함 된 요청 패킷을 보낸다.
  4. 서버는 요청 패킷을 받으면, TCP/IP 패킷을 버리고, HTTP 메시지를 보고 해석, 데이터를 찾는다
  5. 웹 서버에 HTTP 응답 메시지를 만든다.
  6. 웹 브라우저는 전달 받은 응답 메시지를 보고 정보를 확인 할 수 있다.

 


REFERENCE

인프런 강의 -  HTTP 모든 개발자를 위한 HTTP 웹 기본 지식

300x250