본문 바로가기
IT/Network

HTTP 웹 기본지식-1

by 밤톨엽 2022. 3. 10.

개요

인프런 김영한 강사님의 모든 개발자를 위한 HTTP 웹 기본 지식 강의를 완강하고 해당 내용을 정리하기 위해 글을 작성했습니다.

김영한 강사님이 소개 영상에서 웹쪽 영역에서 프론트엔드 개발자 백엔드를 통틀어 모든 것이 HTTP 기반 위에서 동작한다고 강조해주신 것을 눈여겨 볼 필요가 있습니다.


특히, 백엔드 개발자는 웹 기술이나, 웹 프레임워크가 모두 HTTP 기술을 베이스로 개발이 되어있기 때문에 HTTP를 모른다고 하면 깊이있게 원리를 파악하기가 쉽지 않으므로 HTTP의 기본적인 내용을 아는것은 필수 불가결로 생각됩니다.


해당 강의는 HTTP에 대한 내용을 잘 모르거나, HTTP의 전체적인 흐름과 핵심 내용을 정리하고 싶은 분들께 정말 추천드리고 싶습니다.


인터넷 네트워크

웹, HTTP는 인터넷 네트워크 망의 기반에서 동작하기 때문에 기본적인 걸 알아보도록 하자
  • 인터넷 통신
  • IP(Internet Protocol)
  • TCP, UDP
  • PORT
  • DNS

복잡한 인터넷 망
복잡한 인터넷 망

Hello, world! 라는 메세지를 인터넷 통신을 통해 전송하는 모양이다.

해당 메세지는 수많은 노드들을 거쳐 안전하게 목적지에 도달하기 위해 IP주소를 사용한다.

노드?

노드는 정보를 전송, 수신 및 전달할 수있는 다른 장치의 네트워크에 있는 모든 물리적 장치이다.

컴퓨터는 가장 일반적인 노드이며 컴퓨터 노드 또는 인터넷 노드 라고도 한다.

IP(Internet Protocol)

패킷이란 통신 단위로 메세지를 보내기 위한 통신 규칙
  • 지정한 IP 주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

인터넷 프로토콜 Wiki

패킷?

패킷은 컴퓨터 네트워크가 전달하는 데이터의 형식화된 블록이다.

전송 데이터를 전송하기 위해 나의 IP주소와 목적지 IP주소를 담은 패킷을 만든다.

IP의 한계점

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라진다면
    • 패킷이 순서대로 안오면? 프로그램 구분
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면

TCP & UDP

인터넷 프로토콜 스택의 4계층

인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 모음
  • 어플리케이션 계층 : 프로세스간 통신을 담당
    예) HTTP, FTP, TLS/SSL
  • 전송 계층 : 송신자와 수신자를 연결하는 서비스에 대한 정보를 담당
  • 인터넷 계층 : 패킷을 목적지로 전송하기 위한 정보를 담당
  • 네트워크 인터페이스 계층 : LAN드라이버, LAN 장비등을 통해 물리적 전송을 담당

IP 레이어
IP 레이어

실제 채팅 프로그램이 메세지를 전달하는 모양의 예시를 위에 그림에서 참고할 수 있다.

마지막에 LAN 카드를 통해 전송될 때 Ethernet Frame 포함해서 전송하게 된다.

TCP

전송 제어 프로토콜(Transmission Control Protocol)
  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

TCP 3 way handshake

3 way handshake
3 way handshake

클라이언트와 서버가 SYN, ACK 요청 과정을 통해 연결 확인 후 데이터를 전송하게 된다.

(실제 물리적인 연결이 아닌 논리적으로 연결이 된 것이다.)

순서 보장

TCP/IP 패킷 정보안에 전송 제어, 순서, 검증 정보를 포함하여 데이터 전달 순서를 보장한다.


UDP

사용자 데이터그램 프로토콜(User Datagram Protocol)
  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

전송 속도에 대해 최적화가 필요할 때 대안으로 사용할 수 있는 프로토콜이다.

(동영상, 이미지, ... 등등의 큰 데이터 전송)

TCP&UDP 비교

비교 TCP UDP
의미 TCP는 데이터를 전송하기 전에 컴퓨터간에 연결을 설정 UDP는 시스템이 수신 준비가되었는지 여부를 확인하지 않고 대상 컴퓨터에 직접 데이터를 보냄
확장 대상 전송 제어 프로토콜 사용자 데이터 그램 프로토콜
연결 타입 연결 지향 연결이 적음
속도 느린 빠른
신뢰할 수 있음 높은 신뢰성 신뢰할 수 없는
헤더 크기 20 바이트 8 바이트
승인 사용자의 요청이있을 경우 데이터 확인 및 전송 재전송 기능이 있습니다. 수신 확인도 걸리지도 않고 손실 된 데이터를 다시 전송하지도 않음

참고자료

 

TCP와 UDP의 차이점

TCP와 UDP 사이에는 몇 가지 유사점과 차이점이 있습니다. 차이점 중 하나는 TCP는 연결 지향 프로토콜이며 UDP는 연결없는 프로토콜입니다. 그리고 TCP / IP 모델의 전송 계층에는 TCP와 UDP가 모두 있

ko.gadget-info.com

 

다음 내용은 PORT, DNS, URI 에 대해서 HTTP 웹 기본지식-2 파트에서 정리하도록 하겠습니다.

'IT > Network' 카테고리의 다른 글

HTTP 웹 기본지식-5  (0) 2022.04.16
HTTP 웹 기본지식-4  (0) 2022.03.26
HTTP 웹 기본지식-3  (0) 2022.03.18
HTTP 웹 기본지식-2  (0) 2022.03.13