Back-End/HTTP

[HTTP][모든 개발자를 위한 HTTP 웹 기본 지식] - 인터넷 네트워크

얄루몬 2022. 2. 11. 10:33

 

💻본 포스팅은 '모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한'님의 강의를 듣고 작성되었습니다.
https://inf.run/kXeZ

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., - 강의 소개 | 인프런...

www.inflearn.com


[HTTP란?]

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 프로토콜입니다. HTTP는 웹에서 이루어지는 모든 데이터 교환의 기초이며, 클라이언트-서버 프로토콜이기도 합니다. 클라이언트-서버 프로토콜이란 (보통 웹브라우저인) 수신자 측에 의해 요청이 초기화되는 프로토콜을 의미합니다. 하나의 완전한 문서는 텍스트, 레이아웃 설명, 이미지, 비디오, 스크립트 등 불러온(fetched) 하위 문서들로 재구성됩니다.

 

프로토콜 - 용어 사전 | MDN

프로토콜은 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계입니다. 기기 간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구합니다. 이런 형식을 정

developer.mozilla.org

 

1. 인터넷 네트워크

  • 클라이언트에서 서버로 데이터(패킷)을 보낼 때 인터넷에 있는 여러 노드들을 걸쳐 클라이언트에게 전달해주게 된다. 
  • 이때, 물리적으로(케이블로 연결하는 등의 상황을 의미한다.) 데이터를 주고 받는 곳과 연결할 수 없는 상황이 아니기 때문에 인터넷을 사용해서 데이터를 주고 받는데, 이때 등장하는 개념이 IP(Internet Protocol)프로토콜 이다. 

 

 

 

2. IP 프로토콜

[IP란?]

클라이언트와 서버에서 데이터를 송신, 수신할 때 사용하는 정보 위주의 프로토콜을 의미한다. 


[IP 역할]

  • 지정한 IP 주소(IP Address)에 데이터 전달

 

  • 패킷(Packet)이라는 통신 단위로 데이터 전달
    • 우리가 데이터를 전달할 때 통신의 단위를 패킷이라 한다.

 

[IP 패킷 정보]

IP 패킷 정보

 

[IP프로토콜을 사용해서 패킷을 주고 받는 과정]

IP 프로토콜의 패킷 전달 방식

 

[IP 프로토콜의 한계]

  • 비연결성
    • 서버 불능과 패킷을 받을 대상이 없을 때도 패킷을 전송한다.

 

  • 비신뢰성
    • 전송 중 패킷 소실이 일어날 수 있다.
    • 패킷의 전달 순서를 보장하지 않는다.

 

  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 2개 이상일 때 이를 처리하지 못한다.

 

 

 

3. TCP, UDP

IP 프로토콜 사용으로 일어나는 한계점을 극복해주기 위해서 TCP, UDP를 사용한다. 

 

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

  • 애플리케이션 계층
    • 비지니스 혹은 특정 제품을 만들어내는 것에 따라 탄생하는 데이터 전송에 대한 약속 계층
    • 데이터 전송에 관한 약속을 정하는 계층

 

  • 전송 계층
    • 물리적으로 연결하고 경로를 지정했다면 데이터를 전송해야 하는데 이 방법을 정의하는 계층 
    • 데이터 전송 방법을 정의하는 계층

 

  • 인터넷 계층
    • 경로를 선택하는 IP계층
    • 인터넷 계층에서는 경로를 선택하는 것에만 집중해서 데이터를 보낸 뒤 이 데이터가 어디로 갔는지 순서대로 갔는지에 관해서는 신경쓰지 않는다. 

 

  • 네트워크 인터페이스 계층
    • 물리적 영역을 표준화 하는 계층으로 실제 랜선을 꼽는 랜카드나 랜카드 드라이버 등이 이에 속한다.

 

+ 인터넷 계층(IP)과 전송 계층(TCP/UDP)는 OS에 속한다.

 

 

 

[프로토콜 계층]

[TCP/IP 패킷 정보]

 

[TCP 특징]

TCP(Transmission Control Protocol) = 전송제어 프로토콜

 

  • 연결 지향 -TCP 3 way handshake(가상 연결)
  • 데이터 전달 보증
  • 순서 보증

 

  • 신뢰할 수 있는 프로토콜로 현재는 대부분 TCP를 사용한다.

 

[UDP 특징]

  • IP 계층 위에 TCP와 같은 계층에 있는 프로토콜로 TCP와 달라 UDP는 아무런 기능이 없다. 
  • IP와 거의 같은 기능으로 PORT만 추가된 개념이다.
  • 그러나 매우 단순해서 속도는 빠르다.
  • 애플리케이션에서의 추가적인 작업이 필요하다.

 

 

 

4. PORT

한 개의 IP 주소에서 여러 애플리케이션을 연결해주기 위해서 나온 개념이다.

  • 0 ~ 65535 할당 가능 
  • 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

 

 

 

5.DNS

DNS(Domain Name System) = 도메인 네임 시스템

  1. 도메인명으로 접근 
  2. IP 주소로 응답
  3. IP 주소로 접속

DNS는 IP 주소가 매우 복잡하고 기억하기 어렵기 때문에 생긴 개념인데, google.com처럼 도메인을 구매해서 이를 사용해서 IP 주소에 접근하는 방식이라고 생각하면 쉽다.