URI와 웹 브라우저 요청 흐름

yiwoojung·2023년 9월 1일
0

URI

리소스를 식별하는 통합된 방법


URI (Uniform Resource Identifier)

locator(위치), name(이름) 또는 둘 다를 의미

리소스를 식별한다 == 주민번호로 식별한다

Uniform

: 리소스를 식별하는 통일된 방식

Resource

: 자원

Identifier

: 식별하는데 필요한 정보


URL (Resource Locator)

scheme

  • 주로 프로토콜을 사용
  • http, https, ftp …

프로토콜(https)

  • 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙

유저 인포

호스트명(www.google.com)

포트번호(443)

  • 포트는 생략 가능
  • http(80), https(443)

패스(/search)

  • 리소스 경로
  • 계층적 구조

쿼리 파라미터(q=hello&hi=ko) (GET)

  • query parameter, query string 등으로 불림
    • 웹 서버에 제공하는 파라미터이며 문자 형태임
  • key=value 형태
  • ?로 시작
  • &로 추가가능

fragment (#fragment)

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

URN

이름을 부여해버림

⇒ 찾기가 어렵다

웹 브라우저 요청 흐름

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

패킷

  1. HTTP 요청 메세지 생성
    • 애플리케이션에서 웹 브라우저가 http 메시지를 생성한다.
    • socket 라이브러리를 통해 데이터를 전달한다.
    • TCP/IP에다 패킷(IP PORT 정보가 들어가 있음)을 생성한다.
    • 패킷 정보가 인터넷으로 흘러 들어간다.
  2. 웹 브라우저가 요청 패킷을 전달한다.
  3. DNS 서버를 조회한다.
    • 도메인 이름으로는 찾을 수 없으므로 매핑된 ip를 찾는다.
    • 그 ip로 전송한다.
      • dns 서버를 조작해버리면 해킹을 당할 수 있다 !
  4. 요청 패킷이 도착하면 구글 서버는
    • TCP/IP 패킷을 까서 버린다.
    • HTTP 메세지를 보고 해석하다.
    • HTTP 응답 메세지를 만든다.
    • 응답 패킷을 만들어서 브라우저로 보낸다.
  5. 브라우저가 html을 랜더링한다.

Reference.

profile
프론트엔드 개발자

0개의 댓글