728x90
1. URI
- URI: Uniform(리소스 식별하는 통일된 방식) Resource(자원, URI로 식별할 수 있는 모든 것(제한 없음)) Identifier(다른 항목과 구분하는데 필요한 정보)
- URL: Uniform Resource Locator - Locator: 리소스가 있는 위치를 지정
- URN: Uniform Resource Name - Name: 리소스에 이름을 부여
- URN은 보편화 되지 않았고 URL과 URI는 거의 동일한 의미로 사용된다.
2. URL 문법
scheme:// [userinfo@] host [:port] [/path] [?query] [#fragment]
프로토콜:// 호스트명@ :포트번호 /패스 ?쿼리 #파라미터
https://www.google.com:443/search?q=hello&hl=ko
- scheme
- scheme: == https:
- 주로 애플리케이션 계층 프로토콜 사용 - http, https, ftp
- *프로토콜: 어떤 방식으로 자원에 접근할 것인가 하는 규칙
- userinfo
- URL에 사용자정보 포함해서 인증 - 거의 사용 안함
- URL에 사용자정보 포함해서 인증 - 거의 사용 안함
- host
- host == www.google.com
- 도메인명 또는 IP주소를 직접 사용가능
- PORT
- [:port] == :443
- 접속 포트(TCP 포켓에 필요), 일반적으로 생략함. 생략시 http 80 https 443
- PATH
- [/path] == search
- 리소스 경로, 계층적 구조
- ex) • /home/file1.jpg • /members • /members/100 • /items/iphone12
- query
- [?query] == ?q=hello&hi=ko
- key=value 형태
- ?로 시작, &로 추가 가능
- ?keyA=valueA & keyB=valueB
- query parameter, query string 등으로 불림, 웹서버에 제공하는 파라미터, 문자 형태
- fragment
- html 내부 북마크 등에 사용, 서버에 전송하는 정보 아님
3. 요청
- URI를 통해서 아래 정보 제공
- 나의 요청(query)를 어느 서버(IP)에 보낼지
- 그리고 보낼 요청의 데이터를 한번 가공할 프로토콜(scheme)도 정한다.
- 부가적으로 어느 포트(port)로 보낼지
- URI를 통해서 스타트 끊으면 먼저 scheme(여기선 http)가 요청 데이터 생성
- 요청 메세지에 TCP/IP 패킷을 감쌈 - [출발지 IP,PORT] [목적지 IP,PORT] 메타 정보 추가
4. 응답
1. 패킷 다 벗기고 전송 데이터 확인
2. server에서 http 응답 메세지 만들어줌
3. 응답 메세지에 TCP/IP 패킷을 감쌈 - [출발지 IP,PORT] [목적지 IP,PORT] 메타 정보 추가
이전 포스팅: 1. 인터넷 네트워크
다음 포스팅: 3. HTTP
출처: Inflearn-모든 개발자를 위한 HTTP 웹 기본 지식