URI
리소스를 식별하는 통합된 방법
locator(위치), name(이름) 또는 둘 다를 의미
리소스를 식별한다 == 주민번호로 식별한다
: 리소스를 식별하는 통일된 방식
Resource
: 자원
Identifier
: 식별하는데 필요한 정보
URL (Resource Locator)
scheme
- 주로 프로토콜을 사용
- http, https, ftp …
프로토콜(https)
- 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
유저 인포
호스트명(www.google.com)
포트번호(443)
- 포트는 생략 가능
- http(80), https(443)
패스(/search)
쿼리 파라미터(q=hello&hi=ko) (GET)
- query parameter, query string 등으로 불림
- key=value 형태
- ?로 시작
- &로 추가가능
fragment (#fragment)
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 아님
URN
이름을 부여해버림
⇒ 찾기가 어렵다
웹 브라우저 요청 흐름
https://www.google.com:443/search?q=hello&hl=ko
패킷
- HTTP 요청 메세지 생성
- 애플리케이션에서 웹 브라우저가 http 메시지를 생성한다.
- socket 라이브러리를 통해 데이터를 전달한다.
- TCP/IP에다 패킷(IP PORT 정보가 들어가 있음)을 생성한다.
- 패킷 정보가 인터넷으로 흘러 들어간다.
- 웹 브라우저가 요청 패킷을 전달한다.
- DNS 서버를 조회한다.
- 도메인 이름으로는 찾을 수 없으므로 매핑된 ip를 찾는다.
- 그 ip로 전송한다.
- dns 서버를 조작해버리면 해킹을 당할 수 있다 !
- 요청 패킷이 도착하면 구글 서버는
- TCP/IP 패킷을 까서 버린다.
- HTTP 메세지를 보고 해석하다.
- HTTP 응답 메세지를 만든다.
- 응답 패킷을 만들어서 브라우저로 보낸다.
- 브라우저가 html을 랜더링한다.
- 짠
Reference.