URI 및 웹 브라우저 요청의 흐름

김민기·2024년 3월 18일
0

HTTP

목록 보기
1/6

URI

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

Identifier의 종류

1. URL (Locator)

  • 리소스의 위치

2. URN (Name)

  • 리소스의 이름

URL(위치)는 변할 수 있지만, URN(이름)은 잘 변하지 않기에 URN(이름)만으로 실제 리소스를 찾는 방법이 보편화 되지 않아 잘 사용하지 않는다

따라서, URI를 URL과 동치로 보는게 편하다고 한다

URL의 구조

Scheme://[userinfo@]host[:port][/path][?query][#fragment]
Https://www.google.com:443/search?q=hello&hl=ko

Scheme

  • 주로 프로토콜을 사용

※ 프로토콜 이란?
어떤 방식으로 자원에 접근할 것인가에 대한 규칙

host

  • 호스트 명. 즉, DNS 혹은 IP 주소를 의미

Port

  • 프로토콜(http,https) 사용시 생략할 경우 알아서 배정되므로 일반적으로 생략함

path

  • 리소스 경로를 의미

query

  • key=value 형태를 가지며 문법은 ?key=value&key=value 이다

  • 다른 이름으로 query parameter, query string 등이 있다

fragment

  • 서버에 전송하는 정보가 아닌, html 내부 책갈피(원하는 위치로 가는 표식)을 의미

웹 브라우저 요청 흐름

  1. 클라이언트가 HTTP 요청 메세지를 생성한다
  2. Socket 라이브러리를 통해 전달
    • TCP/IP 주소, 데이터
  3. HTTP 메세지를 포함한 TCP/IP 패킷 생성
  4. 서버에 메세지 도착시, TCP/IP를 제외한 HTTP 메시지만을 사용

HTTP 요청 메세지

GET/search?q=hello&hl=ko HTTP/1.1
Host: www.google.com

HTTP 응답 메세지

메세지 헤더
HTTP/1.1 200 OK
Content-Type: text/html:charset=UTF-8
Content-Length:3423
메세지 바디

응답 메세지를 받은 후 메세지 바디의 HTML 정보를 통해 우리가 검색 후 보이는 웹 화면을 렌더링한다

profile
work0ut

0개의 댓글