ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • URI와 웹 브라우저의 요청 및 응답
    Computer Science/Computer Network 2022. 3. 23. 00:48
    728x90

     

    URI(Uniform Resource Indentifier)

     

    자원을 식별하는 통일된 방식으로 리소스는 URI로 식별할 수 있는 모든 것을 의미하고 식별자는 다른 항목과 구분하는데 필요한 정보이다.

    URI는 URL(User Resource Locator), URN(User Resource Name)으로 나뉘어지는데 URL은 리소스의 위치를 지정해 실제 주소에 쓰이고 URN은 리소스에 이름으로 매핑되어 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되어 있지 않아 참고만 한다. 

     


    URL 문법

     

    URL의 기본적인 형태는 다음과 같다. (아래는 URL의 구조와 비교를 하기위한 구글의 URL이다.)


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

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

     


    scheme

    - 주로 프로토콜에 사용되며, 어떤 방식으로 자원에 접근할 것인가 하는 규칙

    - http는 80 포트, https는 443 포트를 주로 사용하고 포트 번호는 생략 가능

    userinfo

    - URL에 사용자 정보를 포함해서 인증을 하는데 거의 사용되지 않음

     

    host

    - 호스트 이름을 나타내고 도메인명 또는 IP 주소를 직접 사용 가능


    port 

    - 같은 서버 내 여러 프로세스들의 요청을 구분하기 위한 것으로 접속 포트라고도 함

    - 일반적으로 생략

    path

    - 리소스 경로로써 계층적인 구조를 가짐


    query parameter

    - key, value 형태

    - ?로 시작하고, &를 이용해 추가 쿼리문 작성 가능  
    - 웹 서버에 제공하는 파라미터로 문자 형태를 가짐

    fragment

    - html 내부 북마크 등에 사용되고 서버에 전송하는 정보 X

     


    웹 브라우저 요청 흐름


    [클라이언트 -> 서버]


    1. 웹 브라우저에서 URL을 통해 요청하면 DNS 조회를 통해 IP 주소로 변환한 뒤 포트 정보와 함께 HTTP 요청 메시지를 생성한다.


    2. 소켓 라이브러리를 통해 이를 OS에 전달하게 되는데, 먼저 IP 주소와 PORT 번호를 확인 후 TCP/IP 연결을 하고 데이터를 전달한다.

     

    3. OS에선 TCP/IP 패킷(출발지, 목적지 ip, port와 HTTP 메시지)이 생성되고 인터넷 망을 통해 서버로 전달한다.

     


    [서버 -> 클라이언트]


    4. 서버에서는 요청 패킷에 있는 HTTP 메시지를 가지고 검색 엔진을 통해 해석한다. 

     

    5. 해석한 결과대로 HTTP 응답 메시지를 만들어내고 응답 패킷을 생성하여 웹 브라우저에 전달한다.

     

    HTTP 응답 메시지

     


    6. 웹 브라우저에서는 응답 패킷 내부에 HTTP 응답 메시지를 확인해서 HTML 렌더링을 통해 결과를 출력하게 된다.

     

    728x90

    'Computer Science > Computer Network' 카테고리의 다른 글

    웹 애플리케이션의 이해  (0) 2022.04.12
    HTTP의 메소드  (0) 2022.04.06
    HTTP의 기본  (0) 2022.03.31
    인터넷 네트워크  (0) 2022.03.22

    댓글

Designed by Tistory.