✔️ URI? URN + URL
- URN? Resource Name (리소스 이름)
- URL ? Resouce Locator (리소스의 위치)
벤다이어그램으로 표현하면 위의 이미지와 같다.
하지만 , URN은 거의 사용하지 않는다!
- 이름만으로 실제 리소스를 찾을수 있는 방법이 보편화 되지않았기 때문
- 대부분 URL 사용
그러면 본격적으로 URI에 대해 자세히 알아보자.
✔️ URI?
Uniform : 리소스를 식별하는 통일된 방식
Resource : 자원 , URI로 식별할 수 있는 모든것을 뜻함
EX ) HTML파일뿐만아니라 실시간 교통정보 등 식별할수 있는 모든것.
Identifier : 다른 항목과 구분하는데 필요한 정보
✔️ URI 전체 문법
scheme://[userinfo@]host:[:port][/path][?query][#fragment]
[예시]
https://www.google.com/search?q=hello&hl=ko
1) scheme : 주로 프로토콜 사용
ex) http (80), https(443) , ftp
2) userinfo : 사용자정보를 포함해서 인증 , 거의 사용하지 않음
3) host : 도메인명이나 ip주소를 직접 사용가능
4) port : 일반적으로 생략 , 생략시 http는 80 , https는 443
5) path : 리소스의 경로 , 계층적구조로 되어있다.
6) query : key=value형태로 데이터가 들어간다. ?로 시작, &로 추가가능
(쿼리파라미터 , 쿼리스트링등으로 불림)
7) fragment : html내부 북마크등에 사용, 잘사용하지않음 (서버에 전송되는 정보가 아니다.)
✔️웹브라우저 요청 흐름
https://www.google.com/search?q=hello&hl=ko
우리가 위의 주소를 딱 누른 순간
1) 웹브라우저는 google서버를 찾기 위해 DNS를 조회하고 ip와 port정보를 알아낸다.
2) ip와 port정보를 토대로 HTTP 요청메시지를 생성한다.
3) HTTP 메시지를 전송한다.
1. socket 라이브러리를 통해 TCP/IP 연결 (IP와PORT 정보로)
2. TCP/IP로 데이터 전달
3. HTTP메시지를 포함한 TCP/IP 패킷 생성
4. LAN드라이버,장비를 통해 인터넷망으로 던져진다.
4) 인터넷망으로 던져지면 구글서버로 전달이 되고, 구글서버는 TCP/IP패킷을 다 까서 버리고 HTTP 메시지를 해석한다.
5) HTTP 메시지를 통해 데이터를 찾은 후 응답메시지를 만든다. (200 OK)
6) (데이터+응답메시지)로 응답 패킷을 만들고 다시 웹브라우저에게 전송한다.
7) 웹브라우저가 응답패킷을 까고 HTML을 렌더링 시킨다.
'BE > HTTP' 카테고리의 다른 글
[HTTP] CORS와 SOP이 뭘까 ? (웹개발하다 만나는 cors에러 ) (0) | 2022.06.24 |
---|---|
[HTTP] HTTP란 ? (특징,구조,메시지) (0) | 2022.05.28 |
[HTTP]인터넷통신, IP,TCP,UDP,PORT,DNS란? (0) | 2022.03.29 |