✨출처✨
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 인프런 강의를 듣고 정리한 글입니다.
URI
URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다.
- Uniform: 리소스를 식별하는 통일된 방식
- Resouce: 자원
- Identifier: 다른 항목과 구분하는데 필요한 정보.
– URN: 각 URN은 URN의 스키마 사양으로 시작한다.
– NID: IANA(Internet Assigned Numbers Authority)에 등록된 네임스페이스 식별자이다.
– NSS: 네임스페이스별 문자열(NSS)이며, 이 문자열은 특정 객체를 정확하게 식별한다.
URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았다.
URI과 URL은 같은 의미로 사용된다.
문법: scheme://[userinfo@]host[:port][/path][?query][#fragment]
- 프로토콜(https): 어떤 방식으로 자원에 접근 할 것인가 하는 약속 규칙
ex) http, https
- 호스트명(www.google.com): 호스트명. 도메인명 or IP 주소 사용
- 포트 번호(443): 접속 포트. 일반적으로 생략한다.
- 패스(/search): 리소스 경로, 계층적 구조
- 쿼리 파라미터(q=hello&hl=ko)
key = value 형태로 되어 있다.
Query parameter, query string으로 불린다.
웹 브라우저 요청 흐름
- 사용자가 브라우저에 https://www.google.com/search?q=hello&hl=ko 을 입력한다
- 브라우저는 DNS를 통해 도메인에 매칭되는 도착지 IP를 찾는다.
- HTTP 프로토콜을 이용하여 HTTP Request 메세지를 생성한다.
- TCP/IP 프로토콜을 이용하여 HTTP Request 메세지를 서버에 전달한다.
- 서버는 HTTP 프로토콜을 이용하여 HTTP Response 메세지를 생성한다.
- TCP/IP 프로토콜을 이용하여 HTTP Response 메세지를 브라우저에 전달한다.
- 브라우저는 response를 파싱하여 화면을 렌더링하여 사용자에게 보여준다.