URI(Uniform Resource Identifier)
Uniform: 리소스를 식별하는 통일된 방식.
Resource: 자원, URI로 식별할 수 있는 모든 것들.
Identifier: 다른 항목과 구분하는데 필요한 정보.
URL(Uniform Reource Locator)
리소스가 있는 위치를 지정.
형식: scheme://[userinfo@]host[:port][/path][?query][#fragment]
ex) https://www.google.com:443/search?q=hello&hl=ko
scheme에는 주로 프로토콜(어떤 방식으로 자원에 접근할 지 하는 약속된 규칙) 사용.
userinfo는 사용자 정보를 포함해서 인증하는 것인데 거의 사용하지 않음.
host에는 도메인명 또는 IP 주소 직접 사용가능하고 포트는 일반적으로 생략하는데 특정 서버에 접근 시 적어주기.
path는 리소스가 았는 경로로 보통 계층적 구조로 되어 있음.
query는 key=value의 형태로 ?로 시작하고 여러개 추가 시 &로 추가 가능. 웹서버에서 제공하는 파라미터로 문자형태.
fragment는 html 내부 북마크 등에서 사용하고 서버로 전송되는 정보는 아님.
URN(Uniform Reource Name)
리소스에 이름을 부여.
이름은 변하지 않지만 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음.
웹브라우저 요청 흐름
HTTP 요청 메시지 예시
GET /search?q=hello&hl=ko HTTP/1.1
Host: www.google.com
HTTP 메시지 전송하면 그 다음은 패킷 생성하고 웹브라우저가 구글 서버에 요청 패킷 전달.
요청 패킷이 도착하면 TCP/IP 패킷은 버리고 HTTP 메시지를 해석.
그 다음은 데이터 찾아서 구글서버는 다시 웹브라우저에게 HTTP 응답 메시지 만들기.
HTTP 응답 메시지 예시
HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 3423
<html>
<body>...</body>
</html>
응답 패킷을 구글 서버가 전달해서 웹브라우저에게 도착하면 HTML 들어 있으니까 이걸로 랜더링.
랜더링 한 결과를 우리가 볼 수 있게 되는 것.
https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
'DevOps&Infra > Network' 카테고리의 다른 글
HTTP 웹 기본 지식_HTTP 상태코드 (0) | 2022.03.24 |
---|---|
HTTP 웹 기본 지식_HTTP 메서드 활용 (0) | 2022.03.16 |
HTTP 웹 기본 지식_HTTP 메서드 (0) | 2022.03.16 |
HTTP 웹 기본 지식_HTTP 기본 (0) | 2022.03.16 |
HTTP 웹 기본 지식_인터넷 네트워크 (0) | 2022.03.11 |