[Day 17 | Web] HTTP (HyperText Transfer Protocol)

y♡ding·2024년 11월 5일
0

데브코스 TIL

목록 보기
113/163

HTTP (HyperText Transfer Protocol)는 웹 브라우저와 웹 서버 간에 데이터를 주고받기 위해 사용하는 프로토콜로, HTML, 이미지, 동영상 등 웹 페이지 요소들을 전송합니다.


1. HTTP 특징

1. 비연결성(Connectionless)
HTTP는 요청과 응답이 끝나면 연결을 종료합니다. 사용자가 웹 페이지를 요청하면 브라우저와 서버 간에 연결이 생성되고, 요청과 응답이 완료되면 연결이 끊어집니다. 이후 추가적인 요청이 있을 때 다시 연결을 생성합니다. 이를 통해 서버의 부하를 줄이고 많은 사용자를 처리할 수 있지만, 다중 요청에서는 비효율적일 수 있습니다.

2. 무상태성(Stateless)
HTTP는 이전 요청과 다음 요청 간의 상태 정보를 저장하지 않습니다. 즉, 각 요청은 독립적이며, 이전에 어떤 요청이 있었는지 알지 못합니다. 이로 인해 각 요청마다 필요한 정보를 함께 전송해야 하며, 이를 보완하기 위해 쿠키와 세션 등의 기술이 추가로 사용됩니다.

3. 텍스트 기반
HTTP는 요청(Request)과 응답(Response)이 텍스트 형태로 전송됩니다. 사용자는 URL로 웹 자원을 요청하고, 서버는 요청에 따라 HTML, JSON 등의 데이터를 전송합니다.

2. HTTP 요청과 응답 구조

  • 요청(Request): 클라이언트가 웹 서버에 데이터나 서비스를 요청하는 메시지입니다. 요청에는 메서드, URL, 헤더, 바디 등이 포함됩니다.
  • 응답(Response): 서버가 클라이언트 요청에 대해 데이터를 반환하는 메시지입니다. 응답에는 상태 코드, 헤더, 바디 등이 포함됩니다.

3. HTTP 메서드

HTTP에는 다양한 메서드가 있어 요청의 목적을 구체적으로 나타낼 수 있습니다. 주요 메서드는 다음과 같습니다.

  • GET: 리소스를 조회할 때 사용합니다. URL에 쿼리 데이터를 포함하여 서버에 요청하며, 주로 데이터를 불러올 때 사용합니다.
  • POST: 데이터를 서버에 전송할 때 사용합니다. 주로 로그인, 회원가입, 게시물 작성 등의 요청에 사용되며, URL에 데이터가 노출되지 않습니다.
  • PUT: 기존 리소스를 수정하거나, 리소스가 없다면 새로 생성합니다.
  • DELETE: 서버에서 리소스를 삭제합니다.

4. HTTP 상태 코드

HTTP 응답에는 상태 코드가 포함되어, 요청이 성공했는지 실패했는지 등을 알려줍니다.

  • 2xx (성공): 요청이 성공적으로 처리되었습니다. (예: 200 OK)
  • 3xx (리다이렉션): 요청한 리소스가 다른 위치로 이동했습니다. (예: 301 Moved Permanently)
  • 4xx (클라이언트 오류): 잘못된 요청입니다. (예: 404 Not Found)
  • 5xx (서버 오류): 서버에서 요청을 처리할 수 없습니다. (예: 500 Internal Server Error)

HTTPS (HyperText Transfer Protocol Secure)

1. HTTPS의 특징

HTTPS는 HTTP에 보안 계층(SSL/TLS)을 추가하여 데이터를 암호화하고, 데이터의 무결성과 인증을 제공합니다. 주로 로그인 정보, 결제 정보 등 민감한 데이터를 보호하기 위해 사용됩니다.

1. 암호화(Encryption)
HTTPS는 데이터를 SSL/TLS 암호화하여 전송합니다. 암호화를 통해 중간에 제3자가 데이터를 볼 수 없게 하여 정보 유출을 방지합니다.

2. 데이터 무결성(Integrity)
전송 중 데이터가 변조되지 않았음을 보장합니다. 데이터가 변조되거나 손상된 경우 브라우저가 이를 감지하여 사용자에게 경고합니다.

3. 인증(Authentication)
HTTPS는 서버가 신뢰할 수 있는 서버인지 확인합니다. 서버는 신뢰된 기관(CA, Certificate Authority)에서 발급된 SSL 인증서를 통해 자신의 신원을 증명합니다. 브라우저는 이 인증서를 확인하고, 신뢰할 수 있는 서버와 연결합니다.

2. HTTPS와 SSL/TLS 인증서

HTTPS를 사용하려면 SSL/TLS 인증서가 필요합니다. SSL/TLS 인증서는 신뢰된 기관(CA, Certificate Authority)에서 발급받으며, 유료 또는 무료로 제공됩니다. 브라우저는 인증서를 통해 웹 서버의 신원을 확인하고, 안전한 통신을 보장합니다.


HTTP와 HTTPS의 차이점 요약

특징HTTPHTTPS
보안 수준낮음 (데이터가 평문으로 전송)높음 (SSL/TLS 암호화로 데이터 보호)
데이터 암호화없음있음 (데이터를 SSL/TLS로 암호화)
데이터 무결성없음 (데이터 변조 가능성 존재)있음 (데이터 무결성 보장)
서버 인증없음 (서버 신뢰성 검증 불가)있음 (CA 인증서를 통해 서버의 신뢰성 보장)
주 사용처보안이 중요하지 않은 페이지로그인, 결제 페이지 등 민감 정보가 있는 페이지

HTTP와 HTTPS 사용 권장

  • HTTP: 보안이 중요하지 않은 공공 정보나 단순 페이지 조회용으로 적합합니다.
  • HTTPS: 로그인, 결제, 개인정보 입력이 필요한 페이지에서는 HTTPS를 사용하여 데이터를 암호화하는 것이 필수적입니다.

참조

  • MDN 웹 문서 - HTTP
    • HTTP와 HTTPS에 대한 기본 개념과 프로토콜을 설명하는 페이지입니다.
    • 링크: MDN HTTP 개요
  • Google 웹마스터 - HTTPS로의 전환 가이드

0개의 댓글

관련 채용 정보