42서울/webserv

URL(Uniform Resource Identifier) [webserv개념 1-2]

뜨거운 개발자 2024. 5. 3. 13:41

URL

URL(Uniform Resource Identifier)이란 웹을 뒷받침하는 주소체계입니다.

URI? URL? URN? 각각 무슨 차이가 있을까?

URI는 URL과 URN을 모두 포함하고 있는 개념입니다.

URL은 Locator로 URN은 이름으로 추가 분류된 개념입니다.

URI (Uniform Resource Identifier) URL (L : Locator), URN(N : Name)

Uniform : 리소스를 식별하는 통일된 방식을 의미합니다.

Resource : 자원, URI 로 식별할 수 있는 모든 것을 의미합니다.

Identifier : 다른 항목과 구분하는데 필요한 정보를 의미합니다.

  • URL : Locator 로 리소스가 있는 위치를 지정하는 방식입니다.
  • URN : NAME으로 리소스에 이름을 부여하는 방식이지만 보편화되지 않았습니다. 따라서 URI 와 URL 을 같은 의미로 생각해도 됩니다.

URL분리 해석 예시

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

URL 문법

scheme://[userinfo@]host[:port][?query][#fragment]
  1. scheme (주로 프로토콜)
  2. userinfo (거의 사용X.) : URL 에 사용자 정보를 포함해서 인증.
  3. host (호스트명) : 도메인명 또는 IP 주소를 직접 사용 가능합니다.
  4. port (접속 포트) : 일반적으로 생략하며 생략시 http 는 80, https 는 443을 이용합니다.
  5. path : 리소스 경로(path)로 계층적 구조를 나타냅니다.
  6. query (query parameter, query string) 웹서버에 제공하는 파라미터, 문자 형태입니다. key=value 형태로 ?로 시작하며, &로 추가가 가능합니다. 예 : ?keyA=valueA&keyB=valueB
  7. fragment (서버에 전송하는 정보X) : html 내부 북마크 등에 사용, 같은 페이지에서 이동시 주로 활용됩니다.

웹 브라우저 요청 흐름

https://www.google.com/search?q=hello&hl=ko 이 링크를 웹 브라우저에 입력하면 일어나는 일을 아주 간단한 관점에서 이야기해보겠습니다.

  1. DNS 조회 후 www.google.com 의 ip주소를 받아옵니다.
  2. 웹브라우저가 HTTP 요청 메시지를 생성합니다.

3. 해당 메세지를 Socket 라이브러리를 통해 전송계층에 전달합니다.

4. 전송계층 네트워크 계층에서 HTTP 메시지가 포함된 TCP/IP 패킷을 생성하고 네트워크 계층으로 보냅니다.

5. 네트워크 계층은 인터넷을 통해 해당 서버로 요청 메시지를 전달합니다.

6. 구글 서버에서 요청 패킷을 받고 응답 패킷을 전달합니다. (여기서 TCP/IP 패킷은 까서 버림)

 

7. 웹 브라우저는 응답 패킷을 받아 해석하고 HTML 렌더링을 시킵니다.

728x90