*공부한 내용을 복습하기 위해 작성한 내용이며, 중간에 옳지 않은 내용이 포함될 수 있음.*
URI (Uniform Resource Identifier) 번역하면 "통합 자원 식별자" 입니다.
URL이라는 용어는 흔하게 들어봤지만 URI 또는 URN은 들어보지 못했을 수 있습니다.
URI는 로케이터 (Location), 이름(Name) 또는 둘 다 추가로 분류될 수 있다.
다시 말하면 "URI (자원 식별자)를 URL(위치)로 분류할 것이냐 (URN) 이름으로 분류할 것이냐. " 의 차이
-이름으로 분류하면 URN
-위치로 분류하면 URL
URL과 URN은 각각 위 이미지와 같은 방법으로 리소스를 식별하는데,
URN의 경우 정확한 리소스 식별도 어렵고 찾기도 어렵기 때문에 대부분의 경우 URL의 방법을 사용합니다.
URL의 전체 문법을 살펴보면
프로토콜 / 호스트명 / 포트번호 / 패스 / 쿼리 파라미터가 있는데
scheme (스키마) 어떤 방식으로 자원에 접근할 것인가 하는 약속 규칙 (http 방식)
(https란 http에 Secure이 추가된 것)
호스트명 (도메인 명 또는 IP 주소)= www.google.com
PORT (접속할 포트 번호) = 443 (일반적으로 생략, 생략 시 http는 80번, https는 443 번)
URL (리소스 경로, 계층적 구조) = /search
query(쿼리문, key=value의 형태) = ?q=hello&hl=ko (?로 시작하며 &로 추가 가능하다)
이를 통해 웹브라우저 요청 흐름을 알아보면
https://www.google.com:443/search?q=hello&hl=ko (실제로 작동 O)
헬로
아델의 노래
www.google.com
URL을 입력하면 먼저 DNS서버에 접속하여 DNS를 조회하고 HTTP 요청 메시지 생성을 합니다.
요청 메시지는 이와 같으며
저번 시간에 공부한 프로토콜 4계층을 거쳐, TCP/IP 패킷을 생성하고 전송 데이터에 HTTP 메시지를 넣어
요청 패킷을 서버에 인터넷을 통하여 전달합니다.
그러면 서버에서는 요청 패킷을 받아 TCP/IP패킷을 까서 버리고 HTTP 메시지를 읽게 됩니다.
그러면 서버에서는 요청 패킷의 내용과 요청 HTTP 메시지를 보고 데이터를 처리한 다음 처리 결과에 따라
서버에서 HTTP 메시지를 만들어 다시 요청한 클라이언트에게 패킷을 전달 합니다.
그러면 클라이언트는 서버에서 전송한 HTTP 응답 메시지를의 HTML 폼을 보고 렌더링 하여 화면을 출력합니다.
'HTTP' 카테고리의 다른 글
HTTP 헤더 (http 김영한) (1) | 2024.01.07 |
---|---|
HTTP 상태코드 (http 김영한) (0) | 2024.01.07 |
HTTP API 설계 (GET/POST/PUT/PATCH/DELETE) (김영한 HTTP) (0) | 2024.01.06 |
HTTP 서버 (김영한 HTTP) (0) | 2024.01.06 |
HTTP 인터넷 통신 (김영한 http) (1) | 2024.01.06 |