반응형
이번에는 URI가 무엇인지,
클라이언트의 웹 브라우저에서 서버 사이의 요청의 흐름이 어떻게 흘러가는지에 대해서 알아보자.
URI (Uniform Resource Identifier)
- 인터넷에서 자원을 식별하는 방법
- Uniform: 리소스를 식별하는 통일된 방식
- Resource: 자원, URI로 식별할 수 있는 모든 것
- Identifier: 다른 항목과 구분하는데 필요한 정보
- URL, URN을 포함하는 개념이다.
- URL
- 리소스가 이 위치에 있다고 지정한다.
- URN
- 리소스에 이름을 붙인다.
- ex) urn:isbn:8960777331 (어떤 책의 isbn URN)
- 이름만으로 리소스를 찾는 방법이 보편화되지 않음.
- URL
URL (Uniform Resource Identifier)
- 첫번째에 있는 형식
- 어떤 방식으로 자원에 접근할 것인가 규칙 (location)
- scheme
- http, https, ftp, sftp 등 프로토콜 형식
- user information
- 간단하게 사용 가능하지만 사용자 인증 방식은 보통 다른 방식을 사용함
- ex) 엘라스틱서치에서 user info 포함 요청 예시
curl -XGET 'http://user:password@localhost:9200/_search?q=query'
- host
- 도메인명이나 ip가 직접 입력됨.
- port
- 포트는 보통 생략됨.
- 생략된 포트는 scheme 기준으로 디폴트로 정해짐.
http : 80, https : 443
- path
- 리소스경로, 계층적 구조
- ex) /home/file1.jpg
- query
- key=value 형태
- ?로 시작 &로 파라미터를 이어서 추가
- #fragment
- 서버로 전송되는 정보는 아님
- html 내부 북마크 용도
URN은 크게 중요하지 않은 것 같아 생략
웹 브라우저 요청 흐름
- 클라이언트 → 구글
- GET /search?q=query로 호출을 시도함
- 클라이언트의 요청이 프로토콜 계층을 통과해 요청을 날림.
- http 메세지의 요청이 생성됨
- socket 라이브러리를 통해 전달
- tcp/ip 연결, 데이터 전달
- http 포함 tcp/ip 패킷 생성
- 서버에서는 tcp/ip 패킷을 까서 http 메세지를 조회함.
- 서버에서 http 응답 메시지를 만듬.
- 클라이언트에게 동일한 방식으로 http 응답 메세지를 까서 확인함.
- 클라이언트의 웹브라우저가 받은 메세지 기반으로 렌더링함.
참고 자료
반응형
'개발 > web' 카테고리의 다른 글
[http] http 메소드, 메소드 속성 (0) | 2024.01.07 |
---|---|
[http] http 개요 (0) | 2024.01.02 |
[spring] rest api 응답 컨텐츠 압축하기 (1) | 2024.01.01 |
[http] TCP, UDP (1) | 2023.12.29 |
[http] IP (인터넷 프로토콜) (0) | 2023.12.29 |