HyperText Transfer Protocol의 약자로 하이퍼텍스트 전달 프로토컬이다.
서버
와 클라이언트
가 서로 데이터를 주고받기 위해 사용되는 통신 규약
Hyper Text
는 사용자가 필요한 정보를 자유롭게 검색할 수 있도록 만들어 주는 텍스트 전개 방식이다.
예를 들어 인터넷 주소를 지정할 때 http://www.naver.com
와 같이 시작하는 것을 www.naver.com
이라는 인터넷 주소가 가진 데이터 정보 등의 교환을 HTTP의 통신 규약대로 처리하라는 것을 의미한다고 볼 수 있다.
클라이언트가 서버에 요청을 보내면 -> 서버가 요청에 대한 응답을 보내는
클라이언트 - 서버 구조로 이루어져 있다.
HTTP에서는 서버가 클라이언트의 상태를 보존하지 않는다.
==> 응답과 요청이 독립적
이다.
장점
: 서버 확장성이 높다
=> 무상태는 응답 서버를 쉽게 바꿀 수 있기 때문에 계속해서 서버를 증설할 수 있다.
단점
: 클라이언트가 추가 데이터를 전송
무상태의 한계(stateless)
로그인과 같이 유저의 상태를 유지해야하는 서비스라면, 브라우저 쿠키, 서버 세션, 토큰 등을 이용해 상태를 유지해야 한다.
클라이언트와 서버가 한 번 연결을 맺은 후, 클라이언트 요청에 대해 서버가 응답을 마치면 맺었던 연결을 끊어 버리는 성질
그러니까 쉽게 정리해보자면
클라이언트+서버
=> 요청에 의한 응답 완료
=> 연결 끊기
이렇게 이어져 있다.
장점
: 연결을 유지하기 위한 리소스를 줄이면 더 많은 연결을 할 수 있다.단점
: 연결/해제에 대한 오버헤드가 발생HyperText Transfer Protocol Secure의 약자로, 웹 통신 프로토콜인
HTTP의 보안 버전
을 의미
사이트와 웹 브라우저 간의 통신을
암호화
하여 보호한다.
HTTPS 는 대칭키 암호화와 + 공개키 암호화로 조작하여 작동한다.
SL이나 TLS 프로토콜을 통해 세션 데이터를 암호화하며, 기본 TCP/IP 포트는 443이고, SSL 프로토콜 위에서 HTTPS 프로토콜이 동작한다.
SSL(Secure Sockets Layer)과 TLS(Transport Layer Security)은 네트워크 통신에서 보안을 제공하기 위해 사용되는 암호화 프로토콜이다.
하지만 SSL에는 문제점들이 존재했고 그 문제점을 해결하기 위해 등장한 것이 TLS
이다.
암호화된 연결 설정
서버 인증
: 서버는 클라이언트에게 공개된 인증서를 제공합니다.
클라이언트 인증 (옵션)
: 서버가 클라이언트 인증을 요구할 경우, 클라이언트는 자신의 클라이언트 인증서를 제공합니다.
세션 키 교환
: 클라이언트와 서버는 안전한 방식으로 세션 키를 교환합니다. 일반적으로 공개키 암호화를 사용하여 이 작업을 수행하며, 교환된 세션 키를 사용하여 데이터를 암호화 및 복호화합니다.
데이터 전송
: 세션 키를 사용하여 클라이언트와 서버 간에 암호화된 통신이 이루어집니다. 이제 데이터는 중간에 있는 공격자가 가로채거나 해독할 수 없습니다.
세션 종료
: 통신이 완료되면 세션은 종료되고, 연결은 닫힙니다.
HTTP
메시지는일반 텍스트
이므로,권한이 없는
당사자가 인터넷을 통해 쉽게 액세스하고 읽을 수 있습니다. 반면,HTTPS
는 모든 데이터를암호화
된 형태로 전송
결론을 쉽게 정리하자면 보안계층이 있냐 없냐의 차이이다.