URL
URI(Uniform Resource Identifier)
URI ∋ URL(Locator), URN(Name)
단어뜻
Uniform : 리소스 식별하는 통일된 방식
Resource : 자원, URL로 식별할 수 있는 모든 것(제한 없음)
Identifirer : 다른 항목과 구분하는데 필요한 정보
- URL - Locator : 리소스가 있는 위치를 지정
- URN - Name : 리소스에 이름을 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
- URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않았다.
전체 문법
https://www.google.com/search?q=hello&hl=ko
scheme://[userinfo@]host[:port][/path][?query][#fragment]
- 프로토콜 : 어떤 방식으로 접근할 것인가 하는 약속 규칙
- http, https, ftp 등
- http는 80포트, https는 443포트를 주로 사용하기 때문에 URL에서 포트는 생략해도 된다.
- https는 http에 보안을 추가한 것(HTTP Secure)
- 호스트명(도메인 혹은 IP)
- 포트 번호(접속포트 80 혹은 443 등)
- 패스(/search)
- 리소스 경로, 계층적 구조
- 쿼리 파라미터(?q=hello&hl=ko)
- key=value 형태
- ?로 시작, &로 추가 가능
- userinfo
- URL에 사용자정보를 포함해서 인증
- 거의 사용하지 않음
- fragment
- html 내부 북마크 등에 사용
- 서버에 전송하는 정보 X
웹 브라우저 요청 흐름
- 웹브라우저 주소창에 주소를 검색한다.
- 웹브라우저에서 HTTP 요청 메시지를 생성한다.
- HTTP 메시지가 SOCKET 라이브러리를 통해 전달되고 TCP/IP와 연결된다.
- TCP/IP 패킷이 생성되고, HTTP메시지를 포함한다.
- 보내는 IP, PORT와 받는 IP, PORT가 담긴 패킷이 요청한 서버로 전달된다.
- 서버는 요청받은 패킷에 HTTP 응답 메시지를 담아 응답 패킷을 웹브라우저로 보낸다.
- 웹브라우저에 서버에 요청한 페이지가 보이게 된다.
해당 글은 인프런 김영한 님의 강의 [모든 개발자를 위한 HTTP 웹 기본 지식]을 보고 정리한 내용입니다.