리소스를 식별하는 통합된 방법
Uniform: 리소스를 식별하는 통일된 방식Resource: 자원,URI로 식별할 수 있는 모든 것 (제한 없음)Identifier: 다른 항목과 구분하는데 필요한 정보
URI는 인터넷 자원을 나타내는 고유 식별자이다. ID라고 생각하면 된다.URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다.

URL (Uniform Resource Locator): 리소스가 있는 위치를 지정URN (Uniform Resource Name): 리소스에 이름을 부여
Ex) 초코가 인천에 살고 있다. → URL: 인천, URN: 초코
URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않으므로 그냥 URI를 URL과 같은 의미로 생각할 것이다!다음의
URL를 분석하면서URL문법을 알아보자.
https://www.google.com/search?q=hello&hl=ko
💡 URL 구조
scheme://[userinfo@]host[:port][/path][?query][#fragment]
위의 URL을 구조에 따라 분류하면 다음과 같다.
httpswww.google.com443/searchq=hello&hl=ko하나씩 알아보자!
- 사용할 프로토콜, 리소스에 어떤 방식으로 접근할 것인지를 명시한다.
scheme = 영문 * (영문 * (영문 / 숫자 / "+" / "-" / ".")
http, https 프로토콜을 주로 사용하며, ftp 등 다양한 프로토콜을 사용할 수도 있다.http는 포트 80, https는 443을 주로 사용하며, 포트 번호는 생략할 수 있다.📌 참고
https는http에 보안을 추가한 것이다. (HTTP Secure)
authority는 사용자 정보, 호스트, 포트로 나뉜다.authority = [ userinfo "@" ] host [ ":" port ]
userinfo: URL에 사용자 정보를 포함하여 인증하는 것으로, 거의 사용하지 않는다.host: 호스트명. 도메인명 또는 IP 주소를 직접 사용할 수 있다.PORT: 접속 포트 번호. 일반적으로 생략하며, 생략 시 http는 80, https는 443호스트에서 제공하는 자원의 경로(
path)를 나타낸다.
클라이언트가 자원을
GET방식으로 요청할 때, 필요한 데이터를 함께 넘겨줄 목적으로 사용한다.
key=value 형태이다.?로 시작하며, &로 추가할 수 있다.?keyA=valueA&keyB=valueBquery parameter, query string 등으로 불린다. 웹 서버에 제공하는 파라미터, 문자 형태
html내부 북마크 등에 사용된다.
이번에는
https://www.google.com/search?q=hello&hl=ko의URL을 이용해서
웹 브라우저가 서버에 요청하는 동작을 자세하게 살펴보자.
HTTP 요청 메시지 생성
DNS를 통해 google.com의 IP 주소를 찾는다. 이때 포트 번호를 생략했다.



웹 브라우저가 패킷을 전송하고,
서버는 패킷이 도착하면 패킷의 내부 HTTP 메서드를 해석해서 정보에 맞는 동작을 한다.


서버에서 HTTP 응답 메시지를 생성하고 전송한다.

웹 브라우저에서 응답 메시지를 받아서 맞는 동작을 한다. (여기에서는 렌더링)
HTTP 요청 메시지 생성 → HTTP 메시지 전송 → 응답 메시지 생성 및 전송 → 웹 브라우저에서 응답 메시지에 맞는 동작