https://www.inflearn.com/course/http-%EC%9B%B9-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC
- URI
- 웹 브라우저 요청 흐름
- URI(Uniform Resource Identifier)
- 리소스를 식별하는 통합된 방법
- URI는 로케이터(Locator), 이름(Name) 또는 둘 다 추가로 분류될 수 있음
- URL(Locator)
- 리소스의 위치 - URN(Name)
- 이름
- 그저 이름이기 때문에 위치를 찾을 수가 없음
- 이로 인해 거의 URL만 사용
- URI의 단어 뜻
- Uniform
- 리소스를 식별하는 통일된 방식 - Resource
- URI로 식별할 수 있는 모든 것 (제한이 없음, 웹 문서만 resource에 해당하는 것이 아님) - Identifier
- 식별자
- Uniform
- URL, URN의 단어 뜻
- URL - Locator
- 리소스가 있는 위치 - URN - Name
- 리소스의 이름 - URN만으로 리소스를 찾는 방법이 보편화되어있지 않음
- 따라서, URI와 URL은 엄밀히 다르지만, 같다고 볼 수도 있음
- URL - Locator
- URL 분석
- https://www.google.com/search?q=hello&hl=ko
- scheme://[userinfo@]host[:port][/path/[?query][#fragment]
- 프로토콜, 호스트명, 포트 번호, 패스, 쿼리 파라미터
- scheme
- 주로 프로토콜 사용
- 프로토콜 : 어떤 방식으로 자원에 접근할 것인지 규칙
- http는 80, https는 443 포트로 생략 가능
- path
- 리소스 경로
- 계층적 구조로 이루어짐
- /home/file1.jpg
- /members/100
- query
- key=value 형태
- &로 추가 : ?keyA=valueA&keyB=valueB
- 쿼리 파라미터, 쿼리 스트링으로 부름
- 웹 서버에 제공하는 파라미터라 하여 쿼리 파라미터
- 다 문자형태로 넘어가기 때문에 쿼리 스트링
- fragment
- html 내부 북마크 등에서 사용
- 서버에 전송하는 정보는 아님
- 웹 브라우저 요청 흐름
- https://www.google.com/search?q=hello&hl=ko
- 1. 서버를 찾아야함 (IP/Port)
- DNS를 통해 IP를 찾음
- https는 port가 443 - 2. HTTP 요청 메시지 생성
- GET /search?q=hello&hl=ko HTTP/1.1 Host: www.google.com
- HTTP 메서드, path부터 URL, HTTP 버전, 호스트 - 3. 소켓 라이브러리
- TCP/IP 연결 : IP, Port 이용
- TCP 계층으로 데이터 전달 - 4. TCP
- HTTP 메시지를 포함한 TCP/IP 패킷 생성
- IP/Port 포함 - 5. 인터넷으로 전송
- 인터넷의 라우터를 통해 서버로 전송 - 6. 서버
- 서버에서 HTTP 요청을 해석
- path는 /search, 쿼리 스트링은 q가 hello, hl이 ko
- 요청에 맞는 처리 (hello가 포함된 한국어 검색) - 7. HTTP 응답 메시지 생성
- HTTP/1.1 200 OK Content-Type: text/html;charset=UTF-8 Content-Length: 3423
- <html><body>...</body></html>
- HTTP 버전, status code, Content Type, Content Length, Body - 8. 인터넷으로 전송
- 인터넷 라우터를 통해 클라이언트로 전송 - 9. html 렌더링
- 응답에 포함된 html 문서를 렌더링
'CS > 웹' 카테고리의 다른 글
[웹] Spring - NodeJS - Django (0) | 2022.04.19 |
---|---|
[웹] JEE (Jakarta Enterprise Edition) (0) | 2022.04.19 |
[웹] SEO란 (0) | 2022.04.18 |
[인프런][HTTP] 인터넷 네트워크 (0) | 2022.03.30 |
[Web] 정적 컨텐츠에서 스프링까지 (Java를 모르는 내가 스프링에 도달하기까지) (0) | 2022.02.04 |