![](https://velog.velcdn.com/images/heyhighbyee/post/3bac1275-5057-4497-aad3-80babb5a37fb/image.png)
- 자원의 위치뿐만 아니라 자원에 대한 고유 식별자
인터넷에 있는 자원을 나타내는 유일한 주소
-
자원이 존재하는 위치
쉽게 말하면, 웹 페이지를 찾기 위한 주소
-
흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 컴퓨터 네트워크상의 자원을 모두 나타낼 수 있다. 그 주소에 접속하려면 해당 URL에 맞는 프로토콜을 알아야 하고, 그와 동일한 프로토콜로 접속해야 한다.
- 리소스에 이름을 부여한 것으로 불변하며 유일하다
ex) urn:isbn:3472389238
- 리소스 접근방법과, 웹 상의 위치가 표기되지 않음
- 실제 자원을 찾기 위해서 urn을 url로 변환하여 이용
URI 문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
https://www.google.com:443/search?q=hello&hi=ko
scheme
- 주로 프로토콜 사용
프로토콜 ? 어떤 방시긍로 자원에 접근할 것인가 하는 약속 규칙
ex) http, https, ftp
- http 80 포트, https 443 포트 주로 사용 (포트 생략 가능)
- http + 보안 추가 = https
userinfo
- url에 사용자 정보를 포함하여 인증
- 거의 사용 x
host
PORT
- 접속 포트
- 대체로 생략 (생략시 http는 80, https는 443)
path
- 리소스 경로, 계층 구조
ex) members/100
query
- key=value 형태
- ?로 시작, &로 추가
- query parameter, query string 으로 불림
fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보는 아님
웹 브라우저 요청 흐름
https://www.google.com:443/search?q=hello&hi=ko
1. DNS 조회 (ip, port 조회)
2. HTTP 요청 메시지 생성, 전송
HTTP 요청 메시지
GET/search?1=hello&hi=ko HTTP/1.1
Host:www.google.com
전송
![](https://velog.velcdn.com/images/heyhighbyee/post/bc0b3d33-3af4-4bd5-a61b-9e7d4d65bc84/image.png)
3. 패킷 생성 -> 전송
패킷 속 전송 데이터 = HTTP 요청 메시지
5. HTTP 응답 메시지 생성 -> 응답 패킷 전달
요청 패킷 도착 후 응답 메시지 전달
HTTP 응답 메시지
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length:3423
<html>
<body>...</body>
</html>
6. 웹 브라우저 HTML 렌더링