인프런 - 모든 개발자를 위한 HTTP 웹 기본지식 강의를 수강하며 수강섹션에 따라 총 8개의 파트로 분리하여 정리해 보려 합니다.
- 인터넷 네트워크
- URI와 웹 브라우저 요청흐름
- HTTP 기본
- HTTP 메서드
- HTTP 메서드 활용
- HTTP 상태코드
- HTTP헤더1 - 일반 헤더
- HTTP헤더2 - 캐시와 조건부 요청
이번에는 그 첫번째 섹션인 인터넷 네트워크에 대해 정리하겠습니다.
클라이언트와 서버는 인터넷을 통해서 서로 통신을 하게 됩니다. 인터넷은 수많은 노드를 통해 이루어져 있는데 이렇게 복잡한 인터넷망을 통해서 어떻게 클라이언트와 서버가 통신을 할 수 있는 지에 대해 알아보려 합니다.
인터넷 프로토콜 역할
IP프로토콜의 한계를 극복하기 위해 나온것이 TCP입니다.
TCP/IP 패킷 정보는 아래와 같이 생겼습니다.
전송제어 프로토콜(Transfer Control Protocol)로 특징은 다음과 같습니다.
클라이언트와 서버간에 데이터가 유실되진 않았는지 확인하여 데이터 전달을 보증합니다.
클라이언트가 패킷1,패킷2,패킷3 순서로 전송했는데 서버가 패킷1,패킷3,패킷2 순서로 도착하여 받게 된다면 서버가 클라이언트에게 이를 확인하고 패킷2번부터 다시 보내달라고 클라이언트에게 요청하여 패킷의 도착 순서를 보장하게 됩니다.
사용자 데이터그램 프로토콜(User Datagram Protocol)로 특징은 다음과 같습니다.
이와같이 전달 및 순서가 보장되지 않지만 단순하고 빠른것이 UDP의 특징입니다.
정리
하나의 컴퓨터는 하나의 IP주소를 가지고 있습니다. 그런데 하나의 컴퓨터에서 게임이나, 화상통화 등 여러 작업을 동시에 진행하고 싶을때는 여러서버에서 보낸 응답들이 하나의 IP로 응답되기 때문에 게임에 대한 응답인지, 화상통화에 대한 응답인지 클라이언트는 구분할 수 가 없습니다. 이를 해결하기 위해 나온 것이 PORT입니다.
위의 사진을 보면 출발지 PORT와 목적지PORT라는 항목이 있습니다. 이렇게 PORT를 사용하여 게임에 대한 요청과응답, 화상통화에 대한 요청과 응답을 하나의 IP를 사용하여 구분할 수 있게 됩니다.
정의 : 도메인 네임 시스템(Domain Name System, DNS)은 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행할 수 있도록 하기 위해 개발되었습니다.
우선 IP주소는 사용자가 기억하기 쉽지 않습니다. 100.100.100.1 같은 주소를 사용자가 모두 기억하기는 굉장히 어렵습니다.
또한 IP는 쉽게 변경될 수 있습니다.
이를 해결하기 위해 나온것이 DNS입니다.
예를 들어 구글은 DNS서버에 IP주소와 도메인 명인 www.google.com을 등록해 놓고 클라이언트가 www.google.com을 입력하면 DNS서버로 요청을 하게 됩니다. 그럼 DNS서버는 등록된 도메인명에 맞는 IP주소를 응답하게 되고 클라이언트는 구글IP주소 서버로 접속하게 됩니다.