Home HTTP 웹 지식 - URI와 웹 브라우저 요청 흐름
Post
Cancel

HTTP 웹 지식 - URI와 웹 브라우저 요청 흐름

URI? URN? URL?

URI (Uniform Resource Identifier).

URI는 로케이터(Locater), 이름(Name) 또는 둘 다 추가로 분류될 수 있다.

URL은 리소스의 위치를 나타내는 것이고

URN은 그냥 리소스의 이름인 것이다.

그러나 URN과 같은 이름으로 Resource에 접근하기 불가능에 가까워 URL만 사용하게 된다고 보면 된다.

URI

  • Uniform : 리소스를 식별하는 통일된 방식
  • Resource : 자원, URI로 식별할 수 있는 모든 것.
  • Identifier : 식별자.

URL, URN

URL -> 위치는 변할 수 있지만 URN -> 이름은 변하지 않는다.

URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았기때문에 일단은 URI와 URL을 동일 시 해도 무방하다.

URL의 분석

검색 -> query = hello & language = korean

  • 프로토콜 : https
  • 호스트 명 : www.google.com
  • 포트번호 : 443 (https)
  • 패스 : /search
  • 쿼리 파라미터 : (q=hello&hl=ko)
  1. scheme : 주로 프로토콜로 사용된다. 프로토콜은 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙이다.
  2. userinfo : URL에 사용자 정보를 포함해 인증하는 것인데 거의 사용하지 않는다.
  3. host : 호스트명, 도메인명 또는 IP주소를 직접 사용 가능하다.
  4. port : 접속 포트이며 생략 가능.
  5. path : 리소스 경로이며 계층적 구조이다. (/members/100 이면 100번째 회원 느낌)
  6. query : key = value 형태이다. ?로 시작하고 &로 추가 가능하다. (?keyA=valueA&keyB=valueB) / query parameter, query string 등으로 불린다. 웹 서버에 제공하는 일종의 파라미터인 것이다.
  7. fragment : fragment이다. html 내부 북마크 등에 사용하며 서버에 전송하는 정보는 아니다.

URL을 호출했을 때 웹 브라우저 요청 흐름

DNS를 조회하고 IP주소를 알아낸다. 그리고 HTTP요청 메시지를 생성한다.

이렇게 생성된 메시지를 아래와 같은 과정으로 전달.

이렇게 TCP/IP 패킷으로 캡슐화된 HTTP 메시지가 서버에 도착하면 겉의 TCP/IP 패킷을 버리고 HTTP 메시지를 확인/해석하게 된다. 이후 HTTP 응답 메시지를 만들어 낸다.

HTTP버전, 응답, 여러 정보, html 데이터 등이 포함된다.

클라이언트가 이런 응답메시지를 받으면 웹 브라우저는 HTML 렌더링을 하여 HTML의 결과를 사용자에게 보여주게 되는 것이다.

This post is licensed under CC BY 4.0 by the author.