ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2. URI와 웹 브라우저 요청 흐름
    HTTP 2022. 7. 26. 21:06

    URI (Uniform Resource Identifier)

    정의에 따르면, "URI는 Locator와 Name 혹은 둘 다 추가로 분류될 수 있다."고 되어있다.

    즉, URI = URL + URN라고 할 수 있는 것이다.그렇다면, URI는 무엇일까 ? 우선, 단어의 뜻 부터 알아보자.

     

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

     

    즉, URI는 특정 자원을 식별해주는 식별자라는 것이다.

    자연스럽게, URL은 위치(Locator), URN은 이름(Name)을 통해 자원을 식별한다는 뜻이 된다.

    Resource의 위치는 변할 수 있지만, 이름은 변하지 않는다.

    하지만, 이름만으로 실제 Resource를 Mapping하는 방법이 보편화되어있지 않기 때문에 대부분 URL을 사용한다.


    URL 문법

    URL은 프로토콜, 호스트명, 포트번호, 경로, 쿼리문, 프래그먼트로 구성되어있다.

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

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

     

    ● Scheme

    주로, 프로토콜을 사용하며 http, https, ftp 등이 있다.

    http는 80, https는 443 PORT를 주로 사용하며, scheme에 http나 https를 쓸 경우 PORT는 생략할 수 있다.

    ※ https는 http에 강력한 보안이 적용된 것으로 이해하면 된다.

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

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

    ● Userinfo

    URL에 사용자정보를 포함하는 경우인데, 이는 잘 사용하지 않는다.

    ● Host

    도메인 명을 말하며, IP 주소를 직접 입력해도 된다.

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

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

    ● Port

    특정 IP의 접속 PORT를 말하며, 일반적으로 생략하여 사용한다. (http - 40, https - 443)

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

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

    ● Path

    Resource가 존재하는 경로를 말한다. 이는 일반적인 컴퓨터 Directory와 같이 계층적 구조이다.

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

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

    ● Query

    웹 서버에 파라미터를 제공하기 위해 사용한다.

    key=value 형태로 사용하며, ?로 시작하여 추가적인 query는 &를 사용하여 추가한다.

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

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

    ● Fragment

    html 내부 북마크 등에 사용되는 것으로써, 서버에 전송되는 정보는 아니다.


    웹 브라우저 요청 흐름

    웹 브라우저 주소창에  "https://www.google.com:443/search?q=hi&hl=ko" 를 입력하면,

    DNS를 통해, 도메인 이름에 해당하는 IP 주소를 얻어온다.

    이를 통해, HTTP 요청 메세지를 생성하는데, 그 내용은 아래와 같다.

    HTTP 요청 메세지
    GET /search?q=hi&hl=ko HTTP/1.1
    Host: www.google.com

    즉, 웹 브라우저가 HTTP 요청 메세지를 생성하여 인터넷 프로토콜 스택의 4계층에 따라 동작하게 된다.

    해당 HTTP 요청 메세지를 google 서버에 전달하면, 아래와 같은 응답 메세지가 도착한다.

    HTTP 응답 메세지
    HTTP/1.1 200 OK
    Content-Type: text/html;charset=UTF-8
    Content-Length: 3423
    <html>
    <body>...</body>
    </html>

    웹 브라우저에서 해당 응답 메세지를 열면, html 데이터를 통해 렌더링을 해주는 것이다.

    'HTTP' 카테고리의 다른 글

    6. HTTP 메서드 활용 (2)  (0) 2022.07.28
    5. HTTP 메서드 활용 (1)  (0) 2022.07.28
    4. HTTP 메서드  (0) 2022.07.28
    3. HTTP의 기본  (0) 2022.07.26
    1. 인터넷 네트워크  (0) 2022.07.26

    댓글

Designed by Tistory.