1. 개요
<aside>
💡 웹브라우저 주소 입력란에 URL을 입력했을 때 어떻게 해서 웹 페이지가 보일까요?
브라우저 주소 입력란에 URL을 입력하면
브라우저는 서버에게 해당 주소에 대한 리소스(파일 등의 정보)를 요청(Request)하고
웹 서버는 응답(Reponse)을 통해 리소스를 전송합니다.
이때, HTTP 통신을 사용하게 됩니다. HTTP는 통신을 위한, 문서전송을 위한 약속, 규칙입니다.
그런데, 프론트엔드 개발자가 HTTP를 알아야 할까요?🤔
백엔드 개발자와 원활한 커뮤니케이션을 위해서, API를 다루기 위해선 기초적인 HTTP를 알아두셔야 합니다.
</aside>
2. HTTP란?
- HTTP(HyperText Transfer Protocol) : 하이퍼미디어 문서를 전송하기 위한 프로토콜입니다.
<aside>
💡 Protocol(프로토콜) : 약속
- 데이터가 전송되는 방식을 결정하는 규약입니다.
- 송/수신자 사이의 합의를 통해 ‘데이터 포맷은 이렇게, 오류제어는 이렇게 해서 데이터를 주고받자!’와 같이 서로 통신할 때 이해할 수 있는 규칙을 만든 것을 의미합니다.
</aside>
- 웹에서 이뤄지는 데이터 통신의 기초. 주로 TCP를 사용.
- 버전 : HTTP/1.1
- 1997년에 공개된 버전으로, 현재 가장 많이 사용되는 버전입니다.
- (RFC2068 → RFC2626이 최신 버전)
- 현재 HTTP/2.0이 개발되고 있지만, 아직 범용적으로 사용단계는 아닙니다.
- HTML, XML, Javascript, 오디오, 비디오, 이미지, PDF, Etc
- 요청 또는 상태 라인 / 해더(생략가능) / 빈줄(해더의 끝) / 바디(생략가능)
- HTTPS (HTTP Secure)
3. TCP/IP
- 인터넷에 관련된 다양한 프로토콜의 집합을 총칭합니다.
- HTTP는 TCP/IP 중 하나입니다.
- HTMP, FTP, SNMP, TCP, IP, UDP 등이 ‘TCP/IP’에 포함됩니다
3.1 TCP/IP 4계층(Layer)
- 4계층 - 애플리케이션 계층: 유저에게 제공되는 애플리케이션에서 사용하는 통신의 움직임을 결정합니다.