인터넷에서 컴퓨터들은 어떻게 통신할까?
http를 이해하기 위해서는 인터넷 네트워크에 대한 이해가 있어야 가능하다.
컴퓨터끼리 통신을 하기 위해서는 IP 주소가 있어야 한다.
ex) 100.100.100.1
패킷의 상세 내용 : 출발지 IP, 목적지 IP, 내용..
패킷을 인터넷을 통해 보내게 된다면 노드들을 거쳐 서버 IP 주소를 찾아 보내진다.
패킷의 상세 내용 : 출발지 IP, 목적지 IP, 응답..
클라이언트와 방법이 동일하다
이런 문제를 해결해줄 수 있는 방법이 TCP 프로토콜 이다.
transmission control protocol
인터넷 프로토콜 스택의 4계층이다. 즉 TCP란 IP를 보완해서 나온 기술이라고 볼 수 있다.
위에서부터 순서대로 진행이 된다.
1. 애플리케이션에서 메시지를 생성해서 아래로 내려준다.
2. TCP 정보를 생성하고, 메시지 데이터를 포함한다.
3. IP 패킷을 생성한다 (TCP 정보가 포함)
IP 패킷에는 앞서 설명한 내용과 같이 출발지 IP,목적지 IP, 내용 등이 있다.
TCP 패킷에는 거기에 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 등이 추가로 들어간다.
이렇게 추가로 내용이 들어가기 때문에 다음의 장점이 있다.
클라이언트가 서버에 connect를 위해 SYN 을 보내고 서버가 연결되어 있다면, SYN과 함께 ACK 을 보내게 된다. 클라이언트가 다시 받아 ACK을 다시 보내게 되고 그 후부터 데이터 전송이 가능해진다.
요즘은 세번째 ACK을 보내면서 데이터도 함께 전송 가능하다.
user datagram protocol
같은 IP 내에서 프로세스를 구분해 준다.
즉 한 컴퓨터로 여러 서버와 통신하게 해준다.
TCP/UDP 패킷에서 PORT를 입력해주기 때문에 PORT 정보도 알 수 있다.
Domain name system
IP 번호를 기억하기 어렵기 때문에 사용한다.
도메인 명을 IP 주소로 변환시켜 준다.
Uniform resource identifier
URI는 URL과 URN 로 분류될 수 있다.
일반적으로 우리가 아는 형태는 URL로 http로 시작하고,
URN은 urn으로 시작하고 이름으로 사용한다. 하지만 이름만으로 실제 리소스를 찾을 수 있는 방법이 보편화되지 않아서 잘 사용하지 않는다.
주로 프로토콜을 사용한다.
포트는 생략 가능하며, http는 80 https는 443 포트를 사용한다.
scheme://[userinfo@]host.. 형식으로 사용한다.
URL에 사용자 정보를 포함해서 인증한다.
거의 사용되지 않는다.
도메인명 또는 IP 주소를 직접 사용가능하다.
리소스 경로
웹서버에 제공하는 파라미터이다.
query parameter, query string이라 불린다.
key = value 형태로 사용되며 ?
로 시작하고, &
로 추가가 가능하다
reference