728x90
1. URI, URL, URN?
- Uniform Resource Identifier, Uniform Resource Locator, Uniform Resource Name
- 영어 뜻대로, 자원 식별자와 자원의 위치, 이름이라고 이해했다.
- URI는 Locator나 Name으로 구별이 가능하다. URI가 상위 개념
구분 예시)
- http://test.com 은 해당 서버의 위치, 식별자 역할을 둘 다 하므로 URI이면서 URL이다.
- http://test.com/abc 역시 test 서버의 abc라는 자원의 위치, 식별자 역할이므로 URI이면서 URL이다.
- http://test.com/abc/def/index.html 역시 index.html 파일의 위치, 식별자 역할이므로 URI이면서 URL이다.
- 하지만 http://test.com/123 은 자원의 위치는 test 서버(http://test.com)까지이고, 자원의 식별자 역할은 123이 한다. URI이지만 URL은 아니다. (식별 역할)
- 역시 http://test.com/abc?name= kim 은 자원의 위치는 abc 디렉토리까지이고, 이후 자원의 식별자 역할은 name=kim이라는 쿼리 파라미터가 한다. 즉, URI이지만 URL은 아니다. (식별 역할)
- URL의 구성은 프로토콜:// 서버 도메인 이름 or IP 주소 : 포트 / 서버 내의 자원의 path / 쿼리 파라미터 / #fragment
- HTTP는 주로 80 포트, https는 443 포트 사용 - 생략 가능
- URN은 이미지처럼 따로 이름을 지정해주는 것이다. (하지만 이름만으로 자원을 찾는 방법이 보편화되지 않았다고 함)
- 쿼리 파라미터는
- 웹 서버에 제공하는 파라미터, 문자열 형태
- key = value 형식
- ?로 시작하며 &로 여러 개를 사용할 수 있다. keyA=valueA&keyB=valueB
- 프래그먼트는
- 서버에 전송되는 정보가 아니다.
- html 내부 북마크에 사용 (화면 이동 시 #1, #2)
2. 웹 브라우저의 요청 흐름
배운 내용을 바탕으로 간단하게 정리하기
- URL 입력 - https://www.google.com/search?q=hello&hl=ko
- URL 파싱 후 프로토콜, 도메인 주소, 포트 등을 분석한다
- 도메인 주소는 DNS 서버를 통해 IP주소를 얻고, HTTP 요청 메시지를 생성한다.
- 계층을 타고 내려가면서 TCP/IP 계층 전달, 얻은 포트 번호와 3-way handshake(서버 연결 확인) 등을 진행한다.
- TCP/IP 패킷을 생성하고 HTTP 메시지를 감싸서 전송한다.
- 구글 서버에서 패킷을 받고, 응답 메시지가 담긴 응답 패킷을 다시 전송한다.
- 웹 브라우저에서 해석 후 렌더링을 진행한다.
참고 : https://medium.com/@js230023/url-%EA%B3%BC-uri%EC%9D%98-%EC%B0%A8%EC%9D%B4-154d70814d2a
728x90
'개발 도서, 강의 > 모든 개발자를 위한 HTTP 웹 기본 지식(김영한)' 카테고리의 다른 글
1. 인터넷 네트워크 (0) | 2021.08.23 |
---|