HTTP란?

hana jeong·2023년 3월 30일
0

HTTP에 대해 설명하고, 알고있다면 HTTP 메세지 구조에 대해 더 자세히 설명해주세요

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

아하 리소스를 가져올 수 있도록 하는 프로토콜이구나...
그런데 프로토콜은 또 뭘까?

프로토콜(protocol) 은 서로 다른 하드웨어 * 기기 간 데이터 통신 규약을 뜻한다

  • 네트워크를 통해 통신 가능한 기기

기기들은 다음과 같은 과정을 통해 통신함

TCP/IP 4계층 - 프로토콜을 규칙의 역할들에 따라 4개로 분류해놓은 것임
출처 : https://www.slideshare.net/usdrd90/tcpip-4

TCP(Transmission Control Protocol)
서버와 클라이언트 사이 통신 연결 제어
클라이언트와 서버의 연결이 잘 되었는지 확인을 위해 3way handshaking를 사용함

Byte Stream(바이트 스트림)
큰 데이터를 잘게 쪼개서 전송하는 서비스
3way handshaking를 통해 연결을 확인했으면 데이터를 쪼개서 전송하는 것

IP(internet protocol)
분할된 데이터 패킷들을 서버로 전송
이때 서버의 주소는 MAC주소(위도 경도주소)로 알 수 있음
(ip주소는 주소의 방향을 알 수 있지만 믿기 힘듦(언제든 변경될 수 있기 때문에)

ARP(Address Resolution Protocol)
주소를 찾아가는 프로토콜
마치 택배처럼 중간허브에서 다음 배송 허브만 알면 되듯이 중간에서 경유하는 네트워크 기기들이 있는데 이 기기들은 데이터를 전송할 다음 기기의 mac주소만 알면 됨(총 도착 루트는 알 수 없음)


HTTP 메세지 구조
http 프로토콜에서 클라이언트와 서버간의 통신이 일어남
클라이언트가 서버에 리소스를 요청하는 것을 request, 서버가 클라이언트에 요청을 받아 리소스를 제공하는 것을 response라고 함

request는 메소드, 프로토콜 버전, 헤더, 바디로 구성되어 있음
response는 프로토콜버전, 상태코드, 상태코드 설명, 헤더, 바디로 구성되어 있음
조금 더 자세한 설명은 여기를 참고하자


http 프로토콜 특성

  • stateless
    - 새로운 리퀘스트를 보낼 때마다 새로운 리스폰스를 보냄(과거정보 남기지 않음)
    • 상태와 무관 -> 확장이 쉬움
  • 리퀘스트에서 url로 리소스를 식별함(url: 리소스 식별자)

참고
https://developer.mozilla.org/ko/docs/Web/HTTP/Overview
https://www.youtube.com/watch?v=IjxkKQvn8Bc
https://www.mobiinside.co.kr/2022/09/08/http/

profile
https://developer-hh.tistory.com 로 옮깁니다

0개의 댓글