URI
URI (Uniform Resource Identifier)는 네트워크 상의 자원을 나타내는 고유 식별자이다.
URL (Uniform Resource Locator)은 자원의 위치를 나타내고
URN (Uniform Resource Name)은 자원의 이름을 나타낸다.
URL과 URN은 URI에 포함된다.
일반적으로 URN만으로는 실제 리소스를 찾을 수 없기 때문에 잘 사용되지 않고
URI, URL을 비슷한 개념으로 사용된다.
URL 문법
scheme://[userinfo@]host[:port][/path][?query][#fragment]
scheme: 프로토콜 - 어떤 방식으로 자원에 접근할지를 알리는 약속
host: 호스트명(www.google.com 등). 도메인명 또는 IP주소 직접 사용 가능
port: 포트번호 - http는 80, https는 443. 생략가능
path: 패스 - 리소스 경로
query: 쿼리 파라미터 - key=value 형태. 쿼리스트링 쿼리파라미터 등으로 불림
userInfo: 사용자 정보를 포함해서 인증 - 터미널에서 깃헙 접근할 때 등 사용. 거의 사용되지 않음
웹 브라우저 요청 흐름
https://www.google.com:443/search?q=hello&hl=ko
을 예시로 살펴보자.
웹브라우저에서 위 주소를 검색하면
DNS에서 호스트명을 조회해 얻은 ip주소로 http 요청 메세지를 작성해 전송한다.
(https 프로토콜은 http에 보안 기능이 추가된 프로토콜이다.)
웹 브라우저가 생성한 http메세지는 소켓을 통해 transport 레이어에서 tcp/ip 패킷이 된다.
http 메세지에 tcp/ip에 필요한 정보를 헤더로서 붙인 형태이다.
TCP/IP 패킷에는 출발지와 목적지의 IP와 PORT넘버, 그리고 전송될 http 메세지 데이터가 포함된다.
서버는 해당 메세지를 받고 아래와 같은 response를 보낸다.
브라우저는 response에 포함된 html데이터를 랜더링한다.
+) 예시 이외의 http 메소드와 응답 코드 종류에 대한 글이다.
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=2000sky2&logNo=220619302087
'Spring boot' 카테고리의 다른 글
[HTTP] HTTP 메서드 (0) | 2021.10.13 |
---|---|
[HTTP] http 기본 (0) | 2021.10.06 |
[HTTP] 인터넷 네트워크 (2) | 2021.09.22 |
[기본] 빈 스코프 (0) | 2021.08.24 |
[기본] 빈 생명주기 콜백 (0) | 2021.08.24 |