✔️ URI (Uniform Resource Identifier)는 로케이터(Uniform Resource Location), 이름(Uniform Resource Name), 또는 둘다로 분류 될 수 있다.
✔️ URI라는 큰 개념은 리소스를 식별하는 것. 즉, 로케이터와 이름을 식별하는 방법이다.
✔️ URL은 리소스의 위치를 지정
✔️ URN은 리소스의 이름을 부여
▶️ URN은 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되어있지 않기 때문에 거의 URL만 사용한다.
▶️ UNIFORM : 리소스를 식별하는 통일된 방식
▶️ RESOURCE : URI로 식별할 수 있는 모든 것 (제한 없음)
(ex. HTML파일, 실시간 교통정보 등등 그 외 우리가 구분할 수 있는 모든것)
▶️ IDENTIFIER : 다른 항목과 구분하는데 필요한 정보 (ID)
https://www.google.com:443/search?q=hello&hl=ko
▶️ 프로토콜(Protocol) : https
▶️ 호스트명(Host) : www.google.com
▶️ 포트 번호(PORT) : 443
▶️ 패스(Path) : /search
▶️ 쿼리 파라미터(Query Parameter): q=hello&hl=ko
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:433/search?q=hello&hl=ko
✔️ 스키마는 주로 프로토콜을 사용한다.
▶️ 프로토콜 : 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙
(ex. http, https, ftp 등등)
✔️ https(HTTP Secure)는 http에 강력한 보안이 추가된 것이다.
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:433/search?q=hello&hl=ko
✔️ URL에 사용자 정보를 포함해서 인증한다. 잘 사용되지 않는다.
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:433/search?q=hello&hl=ko
✔️ 호스트 명으로 도메인 이름 또는 IP주소로 직접 사용 가능하다.
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:433/search?q=hello&hl=ko
✔️ 접속해야하는 포트 번호이다.
▶️ HTTP : 443
▶️ HTTPS : 80
✔️ 일반적 웹브라우저에선 생략 가능하지만 특정 서버에 따로 접근해야할 경우 명시해준다.
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:433/search?q=hello&hl=ko
✔️ 리소스의 경로로 계층적 구조를 이루고 있다.
ex)
▶️ /home/file1/jpg
▶️ /members
▶️ /members/100,/items/iphone12
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:433/search?q=hello&hl=ko
✔️ Key = Value 형태로 이뤄진 것이며 ?로 시작하고 &으로 추가 가능하다.
?key1=value1&key2=value2
✔️ query parameter, query string등으로 불리며 웹 서버에서 제공하는 파라미터와 문자 형태를 띄고 있다.
- scheme: [userinfo@]host[:port][/path][?query][#fragment]
- https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-introducing-spring-boot
✔️ html 내부 북마크 등에 사용되며 서버에 전송되는 정보는 아니다.
🔗 HTTP 메시지 더 알아보기
✔️ URL통해 웹브라우저는 DNS서버에서 IP를 조회하고 HTTP PORT 정보를 찾아낸 후 HTTP 요청 메시지를 생성한다.
응답 메시지 생성
응답 메시지 전달
✔️ 응답메시지를 패킷에 담아 전달한다.
브라우저 HTML 렌더링
출처:
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC