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
HTTPS는 HyperText Transfer Protocol Secure의 약자로
HTTP의 확장 버전 또는 더 안전한 버전이라고 볼 수 있다.
HTTPS는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정한다.
HTTP는 기본적으로 암호화되지 않은 데이터를 전송한다. 즉, 브라우저에서 전송된 정보가 해킹될 위험이 있다. 이러한 상황을 막기 위해서 통신에 또 다른 보안 계층을 추가하기 위해서 HTTPS로 확장되었다.
HTTPS는 HTTP 요청 및 응답을 SSL 및 TLS 기술에 결합한다.
HTTPS 웹 사이트는 독립된 인증 기관(CA)에서 SSL/TLS 인증서를 획득해야 한다.
이러한 웹 사이트는 신뢰를 구축하기 위해 데이터를 교환하기 전에 브라우저와 인증서를 공유한다.
SSL 인증서는 암호화 정보를 포함하므로 서버와 웹 브라우저는 암호화 된 데이터를 교환할 수 있다.
HTTPS는 다음과 같이 동작한다.
- 사용자 브라우저의 주소 표시줄에 https:// URL 형식을 입력하여 HTTPS 웹 사이트를 방문한다.
- 브라우저는 서버의 SSL 인증서를 요청하여 사이트의 신뢰성을 검증하려고 시도한다.
- 서버는 퍼블릭 키가 포함된 SSL 인증서를 회신으로 전송한다.
- 웹 사이트의 SSL 인증서는 서버 아이덴티티를 증명한다. 브라우저에서 인증되면, 브라우저가 퍼블릭 키를 사용하여 비밀 세션 키가 포함된 메시지를 암호화하고 전송한다.
- 웹 서버는 프라이빗 키를 사용하여 메시지를 해독하고 세션 키를 검색한다. 그런 다음, 세션 키를 암호화하고 브라우저에 승인 메시지를 전송한다.
- 이제 브라우저와 웹 서버 모두 동일한 세션 키를 사용하여 메시지를 안전하게 교환하도록 전환한다.
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 |