[Network] URI 와 웹 브라우저 요청 흐름

hi·2022년 8월 25일
0

URI (Uniform Resource Identifier)

  • 자원의 위치뿐만 아니라 자원에 대한 고유 식별
    인터넷에 있는 자원을 나타내는 유일한 주소

URL (Uniform Resource Locator)

  • 자원이 존재하는 위치
    쉽게 말하면, 웹 페이지를 찾기 위한 주소

  • 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.

URN (Uniform Resource Name)

  • 리소스에 이름을 부여한 것으로 불변하며 유일하다
    ex) urn:isbn:3472389238
  • 리소스 접근방법과, 웹 상의 위치가 표기되지 않음
  • 실제 자원을 찾기 위해서 urn을 url로 변환하여 이용

URI 문법

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

https://www.google.com:443/search?q=hello&hi=ko

scheme

  • 주로 프로토콜 사용
    프로토콜 ? 어떤 방시긍로 자원에 접근할 것인가 하는 약속 규칙
    ex) http, https, ftp
  • http 80 포트, https 443 포트 주로 사용 (포트 생략 가능)
  • http + 보안 추가 = https

userinfo

  • url에 사용자 정보를 포함하여 인증
  • 거의 사용 x

host

  • 호스트명
  • 도메인명 or IP 주소 사용

PORT

  • 접속 포트
  • 대체로 생략 (생략시 http는 80, https는 443)

path

  • 리소스 경로, 계층 구조
    ex) members/100

query

  • key=value 형태
  • ?로 시작, &로 추가
  • query parameter, query string 으로 불림

fragment

  • html 내부 북마크 등에 사용
  • 서버에 전송하는 정보는 아님

웹 브라우저 요청 흐름

https://www.google.com:443/search?q=hello&hi=ko

1. DNS 조회 (ip, port 조회)

2. HTTP 요청 메시지 생성, 전송


HTTP 요청 메시지

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

전송

3. 패킷 생성 -> 전송

패킷 속 전송 데이터 = HTTP 요청 메시지

5. HTTP 응답 메시지 생성 -> 응답 패킷 전달

요청 패킷 도착 후 응답 메시지 전달

HTTP 응답 메시지

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length:3423

<html>
	<body>...</body>
</html>

6. 웹 브라우저 HTML 렌더링

0개의 댓글