ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • HTTP 2. URI 와 웹 브라우저 요청 흐름
    CS 2021. 1. 4. 23:03

    1. URI (Uniform Resource Identifier)

     

    URI 는 Locator, Name 또는 둘 다 추가로 분류될 수 있다.

     

    URI 

    • Uniform : 리소스 식별하는 통일하는 방식
    • Resource : 자원, URI로 식별할 수 있는 모든 것 (제한 없음)
    • Identifier : 다른 항목과 구분하는데 필요한 정보

     

     

    • URL : Uniform Resource Locator
      • 리소스가 있는 위치를 지정
    • URL : Uniform Resource Name
      • 리소스에 이름을 부여
    • 위치는 변할 수 있지만, 이름은 변하지 않는다.
    • URN 이름만으로 실제 리소스를 찾을 수 있는 방법은 보편화 되지 않았다.

     

    URL 전체 문법

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

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

     

    • 프로토콜 ( https )
    • 호스트명 ( www.google.com ) 
    • 포트 번호 ( 443 )
    • 패스 ( /search )
    • 쿼리 파라미터 ( q=hello&hl=ko )

     

    1. schme

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

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

    • 주로 프로토콜 사용
    • 프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
      • ex) http, https, ftp, etc ...
    • http 는 80, https 는 443 포트를 주로 사용, 포트는 생략 가능
    • https 는 http 에 보안을 추가한 것이다. (HTTP Secure)

     

    2. userinfo

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

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

    • URL에 사용자 정보를 포함해서 인증
    • 거의 사용하지 않는다.

     

    3. host

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

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

    • 호스트명
    • 도메인 명 또는 IP 주소를 직접 사용 가능

     

    4. port

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

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

    • 접속포트
    • 일반적으로 생략, 생략시 http 는 80, https 는 443

     

    5. path

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

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

    • 리소스 경로 (path), 계층적 구조
      • ex) /members/100, /items/iphone12

     

    6. query

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

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

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

     

    7. fragment

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

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

     


    2. 웹 브라우저 요청 흐름

    예를들어 https://www.google.com:443/search?q=hello&hl=ko 로 요청한다면

    www.google.com 이라는 DNS 조회, 443의 경우 https port 번호 생략 가능

     

    HTTP 요청 메시지

    GET /search?q=hello&hl=ko HTTP/1.1

    Host: www.google.com  

     

    패킷 생성 후 데이터에 HTTP 메시지를 담아서 전달한다.

    서버측에서는 HTTP 응답 메시지 패킷에 담아서 전달하고 클라이언트 측에서는 HTML 렌더링 해서 웹사이트를 볼 수 있다.

     

    HTTP 응답 메시지

    HTTP/1.1 200 OK

    Content-Type: text/html;charset=UTF-8

    Content-Length: 3423

     

    <html>

      <body>...</body>

    </html>

     

     

     

     


    ※ 출처

    www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC/dashboard

    'CS' 카테고리의 다른 글

    HTTP 6. HTTP 상태코드  (0) 2021.01.07
    HTTP 5. HTTP 메서드 활용  (0) 2021.01.06
    HTTP 4. HTTP 메서드  (0) 2021.01.05
    HTTP 3. HTTP 기본  (0) 2021.01.04
    HTTP 1. 인터넷 네트워크  (0) 2021.01.04
킹수빈닷컴