URI(Uniform Resource Identifier)

- URN과 URL은 URI에 포함되는 개념이다.
- URN(Uniform Resource Name): 리소스에 이름을 부여
- URL(Uniform Resource Locator): 리소스가 있는 위치를 지정
- URN은 거의 사용하지 않으므로 URI를 URL과 같은 의미로 보아도 크게 무리가 없다.
구조
scheme://[userinfo@]host[:port][/path][?query][#fragment]
https://www.google.com:443/search?q=hello&hl=ko
- 프로토콜(https)
- 호스트명(www.google.com)
- 포트번호(443) - https의 기본포트는 443으로, 보통 생략되어있다.
- Path(/search)
- 쿼리 파라미터(q=hello&hl=ko)
Scheme
- 주로 프로토콜 사용
- 프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
- http, https, ftp 등
- http는 80포트 https는 443 포트를 주로 사용, 포트는 생략 가능
- https 는 http에 보안 추가 (HTTP Secure)
Userinfo
- URL에 사용자정보를 포함해서 인증
- 거의 사용하지 않음
Host
- 호스트명
- 도메인명 또는 IP 주소를 직접 사용가능
PORT
- 일반적으로 생략, 생략시 http는 80 https는 443
Path
- 리소스 경로, 계층적 구조
- ex:
- /home/file1.jpg
- /members
- /members/100, /items/iphone12
Query
- key=value 형태
- ?로 시작, &로 추가 가능
- ex: ?keyA=valueA&keyB=valueB
- query parameter, query string 등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태
Fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 아님
- 거의 사용하지 않음
웹 브라우저 요청 흐름
- 웹 브라우저에서 URL을 입력하여 서버에 요청을 보내는 상황을 생각해보자.
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
- 웹 브라우저에서 위와같은 HTTP 요청 메시지를 생성할 것이고 이는 소켓 라이브러리를 통해 TCP/IP 계층으로 전달되고, TCP 세그먼트와 IP 패킷으로 wrapping되어 네트워크 인터페이스에서 인터넷을 통해 서버로 전달될 것이다.
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
<html>
<body>...</body>
</html>
- 이후 서버에서는 위와같은 HTTP 응답 메시지를 응답 패킷에 담아 클라이언트의 웹 브라우저로 보낼 것이다.
- 이러한 응답 메시지를 클라이언트의 웹 브라우저에서는 렌더링하여 웹 브라우저 화면에 출력할 것이다.
공부자료: 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한
'CS > Network' 카테고리의 다른 글
| [HTTP] 인터넷 네트워크 (0) | 2024.05.14 |
|---|