모든 개발자를 위한 HTTP 웹 기본지식 강의를 완강하고 해당 내용을 정리하기 위해 글을 작성했습니다.
HTTP 웹 기본지식-1 내용과 이어지며 PORT, DNS, URI 에 대해서 내용을 정리하였습니다.
PORT
같은 IP 내에서 프로세스를 구분
패킷 정보 안에 출발지 Ip, Port 정보가 같이 존재한다.
예시)
- 아파트: Ip 주소
- 101동 101호: Port 번호
참고
- 0 ~ 65535: 할당 가능
- 0 ~ 1023: 잘 알려진 포트로 사용하지 않는 것이 좋음
- FTP - 20, 21
- TELNET - 23
- HTTP - 80
- HTTPS - 443
DNS
도메인 네임 시스템(Domain Name System)
- 전화번호부
- 도메인 명을 IP주소로 변환
IP로만 사용한다면 IP주소는 변경될 수 있고 사람이 기억하기 어려울 수 있다.
DNS는 해당 문제들을 보완해준다.
DNS 조회 8단계
- 사용자가 웹 브라우저에 example.com을 입력하면, 쿼리가 인터넷으로 이동하고 DNS 재귀 확인자가 이를 수신
- 이어서 확인자가 DNS 루트 이름 서버(.)를 쿼리
- 다음으로, 루트 서버가, 도메인에 대한 정보를 저장하는 최상위 도메인(TLD) DNS 서버(예: .com 또는 .net)의 주소로 확인자에 응답
- 이제, 확인자가 .com TLD에 요청
- 이어서, TLD 서버가 도메인 이름 서버(example.com)의 IP 주소로 응답
- 마지막으로, 재귀 확인자가 도메인의 이름 서버로 쿼리를 보냄
- 이제, example.com의 IP 주소가 이름 서버에서 확인자에게 반환
- 이어서, DNS 확인자가, 처음 요청한 도메인의 IP 주소로 웹 브라우저에 응답
DNS에 대해 보다 좀 더 자세히 알고싶다면 오른쪽 링크를 참고할 수 있다 -> DNS 작동원리
URI(Uniform Resource Identifier)
URI? URL? URN?
“URI는 로케이터(locator), 이름(name) 또는 둘다 추가로 분류될 수 있다”
rfc3986 공식 문서 - 1.1.3. URI, URL, and URN
URI
- Uniform: 리소스 식별하는 통일된 방식
- Resource: 자원, URI로 식별할 수 있는 모든 것(제한 없음)
- Identifier: 다른 항목과 구분하는데 필요한 정보
URL, URN
- URL - Locator: 리소스가 있는 위치를 지정
- URN - Name: 리소스에 이름을 부여
- 위치는 변할 수 있지만, 이름은 변하지 않는다.
- urn:isbn:8960777331 (어떤 책의 isbn URN)
- URN 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화 되지 않음
URL 전체 문법
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&hl=ko
- 프로토콜(https)
- 호스트명(www.google.com)
- 포트 번호(443)
- 패스(/search)
- 쿼리 파라미터(q=hello&hl=ko)
웹 브라우저 요청 흐름
- DNS 조회 (IP 주소 검색)
- HTTPS PORT 생략, 443
- HTTP 요청 메시지 생성
- HTTP 응답 메세지 받음
- 응답 메세지가 HTML이라면 웹 브라우저가 HTML 렌더링
HTTP 메시지 생성?
- 웹 브라우저가 HTTP 메세지 생성
- SOCKET 라이브러리를 통해 전달
- A: TCP/IP 연결(IP, PORT)
- B: 데이터 전달
- TCP/IP 패킷 생성, HTTP 메시지 포함
참고자료
다음 내용은 HTTP 기본에 대해서 HTTP 웹 기본지식-3 파트에서 정리하도록 하겠습니다.
'IT > Network' 카테고리의 다른 글
HTTP 웹 기본지식-5 (0) | 2022.04.16 |
---|---|
HTTP 웹 기본지식-4 (0) | 2022.03.26 |
HTTP 웹 기본지식-3 (0) | 2022.03.18 |
HTTP 웹 기본지식-1 (0) | 2022.03.10 |