Web/기초

[Web] HTTP, HTTPS

luckyd8 2025. 4. 3. 12:57

 

 

1. HTTP(Hyper Text Transfer Protocol)

: 서버와 클라이언트의 데이터 교환을 요청과 응답 형식으로 정의한 프로토콜

- 웹 서버와 클라이언트가 리소스를 교환하기 위해 사용하는 프로토콜

  • 리소스: 웹 정보 자산

- 클라이언트과 요청하면, 서버가 응답하는 방식

 

 

HTTP 메시지

: 서버와 클라이언트 간의 데이터가 교환되는 방식

 

- HTTP 메시지 기본 구조: HTTP 헤더(Headers) +  HTTP 바디(Body) 

  • HTTP 헤더(Headers): 각 줄은 CRLF로 구분첫 줄은 시작 줄(Start line), 나머지 줄은 헤더(Header)라고 부름
  • HTTP 바디(Body): CRLF 뒤 모든 줄 / 클라이언트, 서버에게 전송하려는 데이터가 바디에 담김

💡CRLF

  • Carriage Return(CR): 커서를 현재 줄의 맨 앞으로 이동시키는 문자
  • Line Feed(LF): 커서를 다음 줄로 이동시키는 문자
  • 텍스트 파일에서 줄 바꿈을 나타내는 데 사용되는 제어 문자열

 

 

 

1) HTTP 요청 메시지: 서버에게 특정 동작을 요구하는 메시지

  • 메소드(Method): 클라이언트가 수행하고자 하는 동작
  • 요청 경로(path): 가져오려는 URL의 경로
  • HTTP 프로토콜 버전

- HTTP 요청 메소드 종류

메소드
GET 웹 서버에 특정 리소스를 요청 URL 입력, 정보 검색 
POST 서버에 리소스를 전송 로그인,  회원가입
PUT 기존 데이터를 완전히 덮어쓰기  수정, 전체 업데이트
PATCH 기존 데이터의 일부만 수정 부분 업데이트
DELETE 서버에서 특정 리소스 삭제  

 

 

💡요청 URL과 요청 경로(Path)의 차이

- 요청 URL (Request URL): 전체 URL

예) https://example.com:8080/products?category=books 

  • schema: https
  • host: example.com
  • post: 8080
  • path: /products
  • query: ?category=books

-요청 경로(Path): 서버에서 처리할 리소스를 지정하는 부분

  •  URL에서 schema://host:port를 제외한 나머지 부분 -->  /products?category=books

 

 

2) HTTP 응답 메시지: HTTP 요청에 대한 결과를 반환하는 메시지

  • HTTP 프로토콜 버전
  • 상태 코드(Status code): 서버가 클라이언트의 요청을 처리한 후, 그 결과를 세자리수로 표현한 값
  • 처리 사유(Status message): 상태 코드의 발생 이유

- 상태 코드

코드
1xx 요청을제대로 받았고, 처리가 진행 중  
2xx 요청이 제대로 처리됨  200(OK): 성공
3xx 요청을 처리하려면, 클라이언트가 추가 동작이 필요 302(Found): 다른 URL로 갈 것
4xx 클라이언트가 잘못된 요청을 보내어 처리에 실패함  - 400(Bad Reques): 요청이 문법에 맞지 않음
 - 401(Unauthorized): 클라이언트가 요청한 리소스에 대한 인증 실패
 - 403(Forbidden): 클라이언트가 리소스에 요청할 권한이 없음
 - 404(Not Found): 리소스가 없음
5xx 클라이언트의 요청은 유효하지만, 서버에 에러가 발생해 처리에 실패함  - 500(Internal Server Error): 요청 처리 중 중서버에 에러가 발생함
 - 503(Service Unavailable): 서버 과부하로 인해 요청 처리 불가능

 

 

 

2. HTTPS(HTTP over Secure socket layer)

:

HTTP 프로토콜의 암호화된 버전

- TLS(Transport Layer Security) 프로토콜을 도입해 암호화

- 클라이언트와 서버 간의 메시지를 암호화 해 HTTP의 보안성을 강화함

 

- HTTP와 HTTPS의 차이점

HTTP HTTPS
평문 전달(제 3자가 해석 가능) 대칭키를 통해 암호화(제 3자가 해석 불가능)
무결성 보장 X (데이터 전송 중 변경, 조작될 위험 존재) 무결성 보장 (메시지 다이제스트 사용)  
서버의 신원 확인기능 X  인증 기관(CA)에의해 발급된 서버 증서를 이용해 서버의
  신원 확인 가능
포트 번호 80
포트 번호 443

 

  • 무결성: 부적절한 정보의 변경이나 파기 없이 정확하고 안전하게 보존되는 것

 

💡메시지 다이제스트(message digest)

  • 각 메시지마다 고유하게 산출되로독 만든 간단한 문자열
  • 임의의 길이의 메시지를 단방향 해시 함수로 반복 작용해 축약한 일정한 길이의 비트열로 만들어 표현
  • 데이터 무결성: 데이터를 변경하면 메시지 다이제스트도 변경되므로 데이터의 무결성 검증 가능
  • 고유성: 원본 데이터에 대해 생성된 메시지 다이제스트는 고유함
  • 암호화 어플리케이션: 디지털 서명, 메시지 인증 코드(MAC), 해시 기반 메시지 인증코드(HMAC) 등 다양한 암호화 기술에서 사용됨

 

 

 

 

 

 

출처: 드림핵, Mdn web docs