웹 통신의 기본 프로토콜 HTTP와 HTTPS

김현중·2025년 3월 14일

연구소

목록 보기
23/34

HTTP: 웹의 기본 언어

HTTP(HyperText Transfer Protocol)는 웹에서 정보를 주고 받기 위한 기본 프로토콜입니다.

HTTP의 핵심 특징

  1. 클라이언트-서버 구조

HTTP는 클라이언트가 요청을 보내고, 서버가 그에 응답하는 단순한 구조로 동작합니다. 우리가 웹사이트를 방문할 때마다 이러한 요청-응답 사이클이 발생합니다.

  1. 무상태(Stateless)

HTTP는 각 요청을 독립적으로 처리하며, 이전 요청과의 연관성을 유지하지 않습니다. 서버는 이전 요청을 기억하지 않기 때문에, 상태 관리를 위해서는 쿠키, 세션 등의 추가 메커니즘이 필요합니다.

  1. 비연결성(Connectionless)

HTTP는 기본적으로 요청-응답 후 연결을 바로 종료합니다. 이러한 특성은 서버 자원을 효율적으로 사용할 수 있게 해주지만, 매 요청마다 새로운 연결을 수립해야 하는 단점도 있습니다.

  1. 텍스트 기반

HTTP 메시지는 사람이 읽을 수 있는 텍스트 형식으로 구성되어 있어, 디버깅이 상대적으로 쉽습니다.

  1. 확장 가능

HTTP 헤더를 통해 다양한 기능을 추가할 수 있어 유연하게 확장이 가능합니다.


HTTP 메서드

HTTP 메서드는 클라이언트가 서버에 어떤 작업을 요청하는지 나타냅니다. 각 메서드는 특정 목적을 위해 설계되었습니다.

  • GET: 리소스 조회 (데이터 요청)
  • POST: 리소스 생성 (데이터 제출)
  • PUT: 리소스 전체 수정/교체
  • DELETE: 리소스 삭제
  • PATCH: 리소스 부분 수정
  • HEAD: 응답 본문 없이 헤더만 요청 (리소스 존재 여부 확인 등)
  • OPTIONS: 서버가 지원하는 메서드 확인 (CORS 사전 요청 등)
  • TRACE: 요청 메시지 루프백 테스트 (디버깅 용도)

HTTP 헤더

HTTP 헤더는 요청이나 응답에 대한 추가 정보를 제공하는 필드입니다. 헤더를 통해 데이터 형식, 인증 정보, 캐싱 정책 등 다양한 메타데이터를 전달할 수 있습니다.

주요 요청 헤더

  • Host: 요청하는 호스트와 포트 번호 (필수 헤더)
  • User-Agent: 브라우저나 클라이언트 정보
  • Accept: 클라이언트가 처리할 수 있는 콘텐츠 타입
  • Authorization: 인증 토큰 정보
  • Cookie: 서버에 전송하는 쿠키 정보
  • Content-Type: 요청 본문의 데이터 형식

주요 응답 헤더

  • Server: 서버 소프트웨어 정보
  • Set-Cookie: 클라이언트에 쿠키 설정
  • Location: 리다이렉션 대상 URL
  • Content-Type: 응답 본문의 데이터 형식
  • Content-Length: 응답 본문의 크기
  • Cache-Control: 캐싱 동작 지정

보안 관련 헤더

  • Strict-Transport-Security: HTTPS 사용 강제
  • Content-Security-Policy: 콘텐츠 보안 정책 정의
  • X-XSS-Protection: XSS 필터링 활성화
  • X-Frame-Options: 프레임 내 페이지 렌더링 제어


HTTP의 한계와 HTTPS의 등장

HTTP는 데이터를 평문으로 전송하기 떄문에 중간에서 정보가 노출되거나 변조될 위험이 있습닏. 이러한 보안 취약점을 해결하기 위해 HTTPS가 개발되었습니다.


HTTPS: 보안이 강화된 HTTP

HTTPS(Hypertext Transfer Protocol Secure)는 HTTP에 SSL/TLS 암호화 계층을 추가한 프로토콜입니다. 기본적인 기능은 HTTP와 동일하지만, 데이터가 암호화되어 안전하게 전송됩니다.


HTTPS의 핵심 기능

  1. 암호화

HTTPS는 클라이언트와 서버 간에 교환되는 모든 데이터를 암호화합니다. 이는 비밀번호, 신용카드 정보 등 민감한 정보가 중간에서 도청되는 것을 방지합니다.

  1. 데이터 무결성

HTTPS는 전송 중 데이터가 변조되지 않았음을 보장합니다. 누군가 데이터를 수정하려고 시도하면 이를 감지할 수 있습니다.

  1. 인증

HTTPS는 디지털 인증서를 통해 사용자가 의도한 웹사이트와 통신하고 있음을 보장합니다. 이는 파싱과 같은 공격을 방지하는 데 도움이 됩니다.


HTTPS 작동 방식

HTTPS 연결은 다음과 같은 단계로 이루어지는 'SSL/TLS 핸드셰이크' 과정을 통해 수립됩니다.

  1. 연결 요청: 클라이언트가 서버에 연결을 요청합니다.
  2. 인증서 교환: 서버는 자신의 디지털 인증서를 클라이언트에게 전송합니다.
  3. 인증서 검증: 클라이언트는 인증서의 유효성을 확인합니다.
  4. 키 교환: 안전한 통신을 위한 대칭 키를 생성하고 교환합니다.
  5. 암호화 통신: 이후 모든 데이터는 합의된 키를 사용해 암호화됩니다.
profile
박수 받는 사람이 되고 싶어서 항상 노력합니다.

0개의 댓글