HTTP

HTTP는 HyperText Transfer Protocol 의 약자로
클라이언트서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜이다.


프로토콜이란 컴퓨터 네트워크나 통신 시스템에서 데이터를 주고받는 데 사용되는 규약이다.
즉, 서로 상호간 원활한 통신을 위해 동일하게 어떠한 규칙을 설정한다는 의미이다.


HTTP는 주로 웹 브라우저가 웹 서버로부터 웹 페이지를 요청하고 받아오는 데 사용된다.
HTTP는 텍스트 기반의 프로토콜로 클라이언트가 요청(Request)하면 서버가 응답(Response)을 반환하는 방식으로 동작한다.


HTTP는 주로 다음과 같은 메서드를 사용하여 요청(Request)을 전송한다.

  • GET : 서버에서 리소스를 요청하는 메서드
  • POST : 클라이언트가 데이터를 서버로 보내는 메서드
  • PUT : 서버에 데이터를 전송하여 리소스를 업데이트하는 메서드
  • DELETE : 서버에서 리소스를 삭제하는 메서드

마찬가지로 서버는 다양한 HTTP 응답(Response)을 전송한다.

  • 200 - OK(정상)
  • 400 - Bad Request(잘못된 요청)
  • 404 - Resource Not Found (리소스를 찾을 수 없음)
  • 500 Internal Server Error(내부 서버 에러)

더 자세히 알고 싶다면 https://en.wikipedia.org/wiki/List_of_HTTP_status_codes를 확인해보면 된다.

 

HTTPS

HTTPSHyperText Transfer Protocol Secure의 약자로

HTTP의 확장 버전 또는 더 안전한 버전이라고 볼 수 있다.
HTTPS는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정한다.

 

HTTP는 기본적으로 암호화되지 않은 데이터를 전송한다. 즉, 브라우저에서 전송된 정보가 해킹될 위험이 있다. 이러한 상황을 막기 위해서 통신에 또 다른 보안 계층을 추가하기 위해서 HTTPS로 확장되었다.
HTTPS는 HTTP 요청 및 응답을 SSL 및 TLS 기술에 결합한다.

HTTPS 웹 사이트는 독립된 인증 기관(CA)에서 SSL/TLS 인증서를 획득해야 한다.
이러한 웹 사이트는 신뢰를 구축하기 위해 데이터를 교환하기 전에 브라우저와 인증서를 공유한다.
SSL 인증서는 암호화 정보를 포함하므로 서버와 웹 브라우저는 암호화 된 데이터를 교환할 수 있다.

 

HTTPS는 다음과 같이 동작한다.

  1. 사용자 브라우저의 주소 표시줄에 https:// URL 형식을 입력하여 HTTPS 웹 사이트를 방문한다.
  2. 브라우저는 서버의 SSL 인증서를 요청하여 사이트의 신뢰성을 검증하려고 시도한다.
  3. 서버는 퍼블릭 키가 포함된 SSL 인증서를 회신으로 전송한다.
  4. 웹 사이트의 SSL 인증서는 서버 아이덴티티를 증명한다. 브라우저에서 인증되면, 브라우저가 퍼블릭 키를 사용하여 비밀 세션 키가 포함된 메시지를 암호화하고 전송한다.
  5. 웹 서버는 프라이빗 키를 사용하여 메시지를 해독하고 세션 키를 검색한다. 그런 다음, 세션 키를 암호화하고 브라우저에 승인 메시지를 전송한다.
  6. 이제 브라우저와 웹 서버 모두 동일한 세션 키를 사용하여 메시지를 안전하게 교환하도록 전환한다.

HTTPS를 확인하기 위해서는 브라우저에서 웹 사이트 URL 옆에 있는 자물쇠 모양의 아이콘을 보면 된다.
최근에는 거의 대부분의 웹 사이트가 HTTPS를 제공한다.
자세한 통계를 보고 싶다면 https://transparencyreport.google.com/https/overview?hl=ko 를 참고하기 바란다.

 

SSL/TLS 인증서란?

SSL/TLS 인증서는 웹사이트와 사용자 사이의 데이터 통신을 보호하기 위한 보안 프로토콜인 Secure Sockets Layer 통칭 SSL(보안 소켓 레이어) 또는 Transport Layer Security 통칭 TLS(전송 계층 보안)의 일부로 사용되는 디지털 인증서이다. 이 인증서는 웹 브라우저와 웹 서버 간의 통신을 암호화하고 보호하여 제3자가 중간에서 데이터를 엿보거나 조작하는 것을 방지한다.

 

SSL/TLS 인증서의 최대 유효 기간은 13개월으로, 보안 위험을 줄이기 위해 점진적으로 단축되고 있다.

SSL/TLS 인증서에는 다음과 같은 내용이 포함되어 있다.

  • 도메인 이름
  • 인증 기관
  • 인증 기관의 디지털 서명
  • 발급 날짜
  • 만료 날짜
  • 퍼블릭 키
  • SSL/TLS 버전

최신 SSL/TLS 인증서는 SSL/TLS 대신 TLS 프로토콜을 사용하지만 SSL/TLS는 보안 전문가들 사이에서 널리 사용되는 약어이다. 엄밀하게 말하면 서로 다르지만, SSL과 TLS라는 용어는 일반적으로 같은 의미로 사용된다.

 

HTTP와 HTTPS의 차이점

 

  HTTP HTTPS
기본 프로토콜 HTTP/1과 HTTP/2 : TCP/IP 프로토콜
HTTP/3 : UDP기반 QUIC 프로토콜
SSL/TLS + HTTP/2 사용
포트 기본 포트 80 기본 포트 443
용도 이전 텍스트 기반 웹 사이트 모든 최신 웹 사이트
보안 추가 보안 기능 없음 퍼블릭 키 암호화에 SSL 인증서 사용
장점 인터넷을 통한 통신 지원 웹 사이트에 대한 권위, 신뢰성 및 검색 엔진 순위 개선

 

 

Reference

https://aws.amazon.com/ko/compare/the-difference-between-https-and-http/

 

HTTP와 HTTPS 비교 - 전송 프로토콜 간의 차이점 - AWS

1996~1997년에 출시된 최초의 HTTP 버전이 HTTP/1.1입니다. HTTP/2와 HTTP/3은 프로토콜 자체를 업그레이드한 버전입니다. 데이터 전송 시스템을 수정하면서 효율성을 개선했습니다. 예를 들어, HTTP/2는 텍

aws.amazon.com

https://aws.amazon.com/ko/what-is/ssl-certificate/

 

SSL 인증서란 무엇인가요? - SSL/TLS 인증서 설명 - AWS

AWS Certificate Manager(ACM)는 AWS 서비스 및 연결된 내부 리소스에 사용할 공인 및 사설 SSL/TLS 인증서를 손쉽게 프로비저닝, 관리 및 배포할 수 있도록 지원하는 서비스입니다. ACM은 SSL/TLS 인증서를 구

aws.amazon.com

 

'Computer Science > Network' 카테고리의 다른 글

HTTP의 특징  (0) 2023.09.19
URI 와 웹 브라우저 요청 흐름  (0) 2023.09.19
HTTP 웹 기본 지식  (2) 2023.09.18
로드 밸런싱(Load Balancing)  (0) 2023.08.29
SSL/TLS HandShake  (0) 2023.08.29

+ Recent posts