URI(Uniform Resource Identifier)란?
해석하면 리소스를 식별하는 통합된 방법이라는 의미이다. 우리는 URI 뿐만 아니라 URL, URN에 대해서도 들어본 적이 있을 것이다.
URI는 로케이터(locator), 이름(name) 또는 둘 다 추가로 분류될 수 있다.
URL: 리소스의 위치, URN: 리소스의 이름 을 의미하는데 대체적으로 URL을 사용한다.
URN은 거의 쓰이지 않아서, URI와 URL과 같은 의미로 주로 설명함.
URL 전체 문법
1. scheme
먼저 스키마 부분을 보면 주로 프로토콜을 사용한다. 프로토콜은 어떤 방식으로 자원에 접근할 것인가에 대한 약속 규칙을 말한다. (예. http, https, ftp 등). http는 80포트, https는 443 포트를 주로 사용하며, [:port] 부분을 생략 가능하다. 참고로 https는 http에 강력한 보안이 적용된 것이다.
2. userinfo
거의 안 쓰는데 url에 사용자 정보를 포함할 때 사용한다.
3. host
호스트 명을 말하고 도메인명 혹은 IP 주소를 직접 사용 가능하다.
4. port
포트는 생략가능하고 http는 80, https는 443.
5. path
리소스가 있는 경로를 말한다. 보통 계층적 구조로 되어 있다.
- /home/file1.jpg
- /members
- /members/100, /items/iphone 12
5. query
이는 key-value의 형태로 데이터가 들어간다. query parameter, query string등으로 불린다. 웹서버에 제공하는 파라미터. 문자 형태.
6. fragment
잘 사용하지는 않지만.. html 내부에서 이동하고 싶을 때 사용하고 서버로 전송되는 정보는 아니다.
웹 브라우저 요청 흐름
우리가 hello 메시지를 보낼 때
1. 웹 브라우저가 보낼 구글 서버를 찾는다. 아이피와 포트 정보를 찾아냄(DNS통해)
2. HTTP 요청 메시지가 생성된다.
3. SOCKET 라이브러리를 통해 전달한다.
4. TCP/IP 패킷을 생성, HTTP 메시지가 포함된다.
5. 인터넷 망으로 던진다!
'CLASS > 모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글
Section 03. HTTP 기본 (0) | 2024.07.22 |
---|---|
Section 01. 인터넷 네트워크 (1) | 2024.07.21 |