웹개발을 위한 HTTP 기초 지식

[HTTP] 1. 인터넷 네트워크

codewalker 2021. 4. 6. 18:25

클라이언트에서 서버로 데이터를 전송하는 과정

 

 

[1] IP(인터넷 프로토콜; Internet Protocol)

  • 지정한 IP 주소(IP Address)에 데이터를 패킷(Packet)이라는 통신 단위로 나눠서 전달한다.
  • IP 패킷은 전송 데이터와 출발지 IP, 목적지 IP 등의 내용을 포함하고 있다.

Internet Protocol

 

- IP의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷이 전송된다.

 

  • 비신뢰성
    • 중간에 패킷이 사라질 수 있다.
    • 패킷의 도착 순서가 처음과 달라질 수 있다.

 

  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 때 구분이 어렵다.

 

[2] TCP와 UDP

  • TCP/IP 패킷은 출발/목적지 PORT, 전송 제어, 순서, 검증 정보 등이 포함되어 있어 IP 만으로 해결되지 않았던 순서와 관련된 문제가 해결이 된다.

 

- TCP (전송 제어 프로토콜; Transmission Control Protocol) 특징

  • 연결 지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜

TCP 3 way handshake

  1. SYN(접속 요청)과 ACK(요청 수락)의 과정을 거치면서 서로 연결된 것을 확인 후 데이터를 전송한다. 최근에는 단계 3에서 데이터도 같이 전송한다. 이 연결은 물리적인 연결이 보장됐다는 것이 아니라 논리적으로 연결되었음을 의미한다.
  2. 데이터를 전송하면 서버에서 데이터를 받았다는 응답을 한다.
  3. 서버에 패킷이 순서대로 도착하지 않았다면, 서버는 순서가 잘못된 부분부터 다시 보내달라는 요청을 한다.

 

- UDP (사용자 데이터그램 프로토콜; User Datagram Protocol)

  • 데이터 전달 및 순서가 보장되진 않지만, 단순하고 빠르다.
  • IP와 거의 같고, PORT 정보, 체크섬 정도만 추가되어 있다.
  • PORT 정보로 하나의 IP에서 여러 애플리케이션을 구분한다.
  • 체크섬은 데이터를 검증하는데 사용된다.
  • 애플리케이션 레벨에서 추가 작업이 필요하다.

 

[3] PORT

  • TCP/IP 패킷 내에 들어있는 PORT 정보는 같은 IP 내에서 서로 다른 프로세스를 구분할 수 있게 해준다.
  • 0~65535 까지 할당이 가능하고, 0~1023은 잘 알려진 포트로, 사용하지 않는 것이 좋다.
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

 

[4] DNS (Domain Name System)

  • DNS 서버에 도메인을 등록해두면, google.com 을 요청했을 때 DNS 서버가 IP 주소를 알려주고 클라이언트에서 그 IP 주소로 서버에 요청한다. DNS 서버가 IP 주소를 관리하기 때문에 IP 주소 변경이 있더라도 문제가 되지 않는다.

 

 

 

 

[출처] "(인프런) 모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한" 강의를 듣고 내용을 정리함.

'웹개발을 위한 HTTP 기초 지식' 카테고리의 다른 글

[HTTP] 6. HTTP 상태 코드  (0) 2021.04.07
[HTTP] 5. HTTP 메서드 활용  (0) 2021.04.07
[HTTP] 4. HTTP 메서드  (0) 2021.04.07
[HTTP] 3. HTTP 기본  (0) 2021.04.06
[HTTP] 2. URI와 웹 브라우저 요청 흐름  (0) 2021.04.06