[ 네트워크 ] URI와 웹브라우저 요청 흐름

Shelby Choi·2023년 7월 25일

CS

목록 보기
2/5

모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 | 섹션2

📌 URI란?

  • Uniform Resource Identifier의 약자로, 리소스를 식별하는 방식이다.
  • URL vs URI vs URN

    - URI 방식 중에 URL과 URN이 있는 것!
    • URL은 Locator, 즉 리소스의 위치를 의미한다. = 웹 브라우저에 적는 주소
    • URN은 Name, 즉 리소스에 부여된 이름.
  • 그럼 리소스는 뭐냐? URI로 식별할 수 있는 모든 것이 곧 리소스이다.
  • URL이 곧 URI라고 이해해도 무관하다! URN만으로 리소스를 유일하게 찾을 수 있는 방법이 없기 때문.

URL 분석

scheme://[userinfo@]host[:port][/path][?query][#fragment]

  • scheme: 프로토코을 나타냄. 어떤 방식으로 자원에 접근할 것인지 ex) http, https, ftp ...
  • useinfo: URL에 사용자정보를 포함해서 인증할 때 사용. 거의 사용하지 않음
  • host: 도메인명 또는 IP 주소
  • port: http는 80 포트, https는 443 포트를 사용하기 때문에 보통 이 부분은 생략
  • /path: 리소스 경로
  • ?query: 웹서버에 제공하는 파라미터이기 때문에 query parameter, query string이라고도 한다. key=value형태로 표현하고, &로 추가 가능함
  • #fragment: html 내부 북마크. 서버에 전송 안되는 정보

📌 웹 브라우저 요청 흐름

https://www.google.com/search?q=hello&hl=ko를 주소창에 치면, 웹 브라우저에서는 어떤 일이 일어날까?

  1. DNS를 조회해서 IP와 PORT를 찾아내 HTTP 요청 메시지를 만들어낸다.

    1-1. SOCKET 라이브러리를 통해 메시지를 전달하고 TCP/IP 연결한다.
    1-2. OS 계층을 거치면 HTTP 요청 메시지를 감싸는 TCP/IP 패킷을 만들어 구글 서버에 보낸다.
  2. 구글 서버에 패킷이 도착하면, 패킷 내부의 HTTP 메시지를 조회해 HTTP 응답 메시지를 구성한다.
  3. 서버에서 똑같이 응답 패킷을 만들어, 웹 브라우저로 보내면 웹 브라우저에서 HTML을 렌더링한다.
profile
React를 애정하는 FE 개발자

0개의 댓글