HTTP

Hyeok·2025년 4월 23일

HTTP(HyperText Transfer Protocol)는 웹에서 데이터를 주고받기 위한 프로토콜. TCP 위에서 동작하는 상위 계층 프로토콜.

클라이언트(브라우저)와 서버 간의 요청-응답 구조로 작동하며, 주로 HTML 문서, 이미지, 비디오 등 웹 리소스를 전송하는 데 사용

주요 특징
비연결성, 요청-응답 모델

HTTP 요청 예시

GET /index.html HTTP/1.1        
Host: example.com
User-Agent: Mozilla/5.0
Accept-Language: ko-KR

첫 줄에는 HTTP 요청 메서드, URL 경로, HTTP 프로토콜 버전 정보.
두 번째 줄부터 모두 HTTP 요청의 헤더. key:value 쌍으로 이뤄져 있고, 헤더는 웹사이트 도메인의 호스트, 언어, 사용자의 브라우저 등 서버가 필요한 정보를 전달.

HTTP 응답 예시

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2023 14:28:02 GMT
Server: Apache
Content-Type: text/html

<html>
...
</html>

첫 줄에는 HTTP 프로토콜 버전 정보와 HTTP 상태 코드.
둘째 줄부터 보이는 key:value 쌍은 역시 모두 헤더.
마지막으로 응답의 Body는 브라우저가 요청한 데이터.
위 예시에서는 HTML 데이터.

주요 버전

  • HTTP/1.1 (1997)
    전송: TCP, 텍스트
    특징: 안정, 호환성, Keep-Alive, 순차 처리
    용도: 소규모, 호환성 우선
  • HTTP/2 (2015)
    전송: TCP, 바이너리
    특징: 멀티플렉싱, 헤더 압축, 서버 푸시
    용도: 현대 웹, 대규모 서비스
  • HTTP/3 (2022)
    전송: UDP (QUIC)
    특징: 빠른 연결(0-RTT), 낮은 지연, TLS 1.3
    용도: 고성능, 최신 기술

HTTPS

HTTP는 데이터를 암호화하지 않고 전송하기 때문에 제3자가 데이터를 가로채고 읽을 수 있어서 보안을 강화하기 위해 HTTPS(Hypertext Transfer Protocol Secure)로 확장.

HTTPS는 모든 요청 및 응답을 SSL(Secure Socket Layer) 및 TLS(Transport Layer Security) 프로토콜에 따라 암호화. 그래서 HTTPS를 사용하면 카드 정보나 비밀번호와 같은 민감한 정보를 보호할 수 있음.

출처: https://docs.tosspayments.com/resources/glossary/http-protocol (토스페이먼츠),
https://developer.mozilla.org/ko/docs/Web/HTTP/Guides/Evolution_of_HTTP (MDN Web Docs)

profile
공부하면서 정리한 블로그입니다. 혹시 잘못된 내용이 있다면 댓글로 알려주시면 큰 도움이 됩니다. 감사합니다!

0개의 댓글