URI와 웹 브라우저 요청 흐름

so2·2021년 6월 2일
0
post-custom-banner

URI (Uniform Resource Identifier)

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

즉, URI란 리소스를 식별하는 통합된 방법이다

URL : 리소스의 위치 표현
URN : 리소스의 이름 표현 -> URN만으로 리소스를 찾을 수 있는 방법이 보편화 되지 않았고 거의 사용하지 않는다

URL

전체 문법

scheme://[userinfo@]host[:port][/path][?query][#fragment]
ex) https://www.google.com:443/search?q=hello&hl=ko
  • scheme : 주로 프로토콜을 사용한다. 프로토콜은 어떤 방식으로 자원을 접근할지 클라이언트-서버간 정한 규칙이다.
  • userinfo@ : URL에 사용자 정보를 포함해서 인증 거의 사용 X
  • host : 도메인명 or IP주소
  • path : 리소스 경로, 계층적 구조
    ex) /home/file1.jpg , /members , /members/100
  • query : key=value 형태, ?로 시작하고 &로 추가 파라미터를 연결한다.
    query parameter, query string등으로 불림
  • fragment : html 내부 북마크 등에서 사용, 서버에 전송되는 정보는 아니다.
    잘 사용하지 않는다.

웹 브라우저 요청 흐름

  1. 주소창에 주소를 입력하면 웹 브라우저는 DNS서버를 조회해 ip를, 프로토콜을 통해 port정보를 찾아낸다.그리고 HTTP 요청 메시지를 생성한다.
  2. 소켓 라이브러리를 통해 TCP 3 way handshake로 클라이언트-서버를 연결하고 메시지를 전달한다. 이때, 메시지에는 TCP/IP 패킷(ip,port정보)이 씌워진다.
  3. 서버에서는 TCP/IP 패킷은 버리고 HTTP 메시지를 해석한다.
  4. 서버에서 웹브라우저에 응답을 보낼 땐 마찬가지로 TCP/IP 패킷+HTTP 메시지 형태로 전송하고 웹브라우저는 HTML을 렌더링한다.

인프런 "모든 개발자를 위한 HTTP 웹 기본 지식" 강의를 기반으로 작성했습니다.

post-custom-banner

0개의 댓글