CS(computer science)/Computer Network

[인프런 김영한 강의 정리 - 인터넷과 http2 ] - 2. URI와 웹 브라우저 요청

ebang 2023. 1. 31. 23:00

본 게시물은 인프런 강의(김영한 강사님의 '모든 개발자를 위한 http 강의)를 듣고 정리한 메모입니다. 

1. URI

URI는 URL(Uniform Resource Locater), URN(Uniform Resource Name)으로 분류되는데,

URI란. Uniform Resource Identifier로,

간단히 이해하자면 resource를 구분(identify)하는데 필요한 균일한 정보라는 뜻이다.URL은 평소에 접하는 링크를 url이라고 하듯 리소스가 있는 위치를 지정한 것이다.

 

- URN은 이름을 부여한 것으로, 이것을 이용하려면 모든 이름이 매핑되어 있어야 하므로 사용이 어렵다.

따라서 URL이 대다수 이용되고, URI는 사실상 URL이 대표한다고 이해할 수 있다.

 

2. URL 분석

예시

https://www.google.com/search?q=URI+URL&source=lnms&tbm=isch&sa=X&ved=2ahUKEwjOpO7xh_H8AhU0gMYKHRvqA_UQ_AUoAXoECAEQAw&biw=2560&bih=1361&dpr=2
문법: scheme://[userinfo@]host[:port][/path][?query][#fragment]

     1. scheme: 프로토콜을 주요 사용한다.

        프로토콜: http, https, ftp등.

       http, https는 대체로 사용하는 포트 번호가 각각 80, 443 포트로 정해져 있어서 port 파트를 생략하기도 한다.

       https는 http SECURE의 약자로, 강력한 보안이 추가된 프로토콜이다.

    2.  userinfo: URL에 사용자 정보를 포함해서 인증. 오늘날 많이 사용하지는 않는다.

    3.  host : 호스트 명.

       도메인 명 또는 IP 주소를 직접 사용가능하다.

    4. PORT : 접속 포트 번호

      생략된 경우 http, https 는 80, 443를 갖는다.

    5. path : 리소스 경로, 계층적 구조

        /상위폴더/하위/ 등의 구조를 갖는다.

    6. query: 웹서버에 제공하는 파라미터, 문자 형태.

        key=value형태로, 처음에는 ?로 시작하고 &를 붙여서 추가할 수 있다.

    7. fragment : html에서 북마크처럼 사용하는 것으로, 서버로 전송되는 것은 아니다.

 

3. 과정

- https:// .. 로 웹 브라우저가 메세지를 작성해서 socket library로 보낸다.

     -> 웹브라우저(Application Process에 해당)에서 검색을 하면-도메인명으로 있다면 DNS 서버에 질의해서 IP주소로 변환, 포트번 호 생략되어있다면 추가해서 http 요청 메세지 작성.

- socket library에서 TCP 3way handshake가 일어나고

   port 번호까지 추가한 다음 TCP/UDP layer에서 패킷으로 만들어 보낸다.

- 서버로 가게끔 LAN드라이버, 장비에 보내, 네트워크를 통해서 서버로 도착한다.

- 서버에서는 packet을 뜯어 내부의 웹브라우저가 작성했던 메세지를 읽고 맞는 응답 메시지를 만들어 보내면,

   웹 브라우저가 그 응답메시지를 받고 렌더링을 통해 화면을 구성한다.