http
- Hypertext Transfer Protocol
- 서로 다른 시스템들 사이에서 데이터 통신을 원활하게 하기 위한 가장 기초적인 프로토콜
- 암호화 하지 않고 평문으로 통신
- 인터넷의 초기에 웹사이트에서 기본적으로 사용되었던 프로토콜
- 응용 (Application) 계층의 프로토콜로 WWW의 Web 페이지 파일을 전송하는데 사용된다.
- TCP와 UDP를 사용하며, 80번 포트를 사용한다.
- 장점
- 불특정 다수를 대상으로 하는 서비스에는 적합하다
- 클라이언트와 서버가 계속 연결된 형태가 아니기 때문에 클라이언트와 서버 간의 최대 연결 수보다 많은 요청과 응답을 처리가능하다.
- 단점
- 연결을 끊어버리기 때문에, 클라이언트는 이전 상황을 알 수 없다. 이러한 특징을 무상태(Stateless)라고 한다. 이러한 특징 때문에 정보를 유지하기 위해 Cookie와 같은 기술이 등장하였다.
- 완전성을 증명할 수 없기 때문에 변조가 가능하다.
https
- Hypertext Transfer Protocol Secure
- HTTPS는 인터넷 상에서 정보를 암호화하는 SSL 프로토콜을 이용하여 클라이언트와 서버가 데이터를 주고 받는 통신 규약이다.
- http + ssl(보안 소켓 계층)프로토콜 = https
- 증명서를 통해 서버 또는 클라이언트의 신원을 확인하고, 데이터를 암호화, 인증, 안정성 보호를 할 수 있는 프로토콜
- HTTP 통신하는 소켓 부분을 SSL(Secure Socket Layer) or TLS(Transport Layer Security) 라는 다른 프로토콜을 대체하는 것이다.
- HTTP는 원래 TCP와 직접 통신했지만, HTTPS에서 HTTP는 SSL과 통신하고 SSL이 TCP와 통신하게 된다.
- 보안 > HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것이었는데요. 데이터가 쉽게 도난당할 수 있다는문제점이 있었다. HTTPS 프로토콜은 SSL(보안 소켓 계층)을 사용하고, SSL 프로토콜을 통해 세션 데이터를 암호화 한다. SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고, 서버 브라우저가 민감한 정보를 주고받을 때 이것이 도난당하는 것을 막아줍니다.
- 무결성(변조, 손상방지) >HTTPS는 데이터가 변조되지 않은 상태로 목적지에 도달하게 한다. 예를 들어, 와이파이가 웹사이트에 광고를 추가하거나, 대역폭을 절약하고자 이미지 품질을 저하시키거나, 읽는 기사의 내용을 변조할 수 있지만 HTTPS는 웹사이트를 변조할 수 없도록 한다.
SSL란?
- 보안 소켓 계층(Secure Sockets Layer, SSL)
- 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약
- SSL은 웹사이트와 브라우저(혹은, 두 서버) 사이에 전송된 데이터를 암호화하여 인터넷 연결 보안을 유지하는 표준 기술임. 그래서 전송된 데이터는 중간에서 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어있기 때문에 해독할 수 없음
SSL 인증서
- SSL(Secure Sockets Layer) 인증서는 웹사이트의 신원을 확인하는 디지털 인증서
- SSL인증서는 보안통신을 하기 위한 전자 파일입니다. SSL인증서를 서버에 설치함으로써 SSL 프로토콜을 사용하여 보안 통신을 할 수 있게 되는 것
- 증명서는 신뢰할 수 있는 제 3 자 기관에 의해 발행되는 것이기 때문에 서버나 클라이언트가 실재하는 사실을 증명
TLS
- 전송 계층 보안(Transport Layer Security, TLS)
- TLS은 SSL이 점차 보편화되면서 국제 표준화 기구(IETF)에서 이를 관리하기 시작했는데, 이 때 SSL 표준화 되면서 TLS라는 이름으로 변경
HTTP는 직접 TCP와 통신하지만 SSL을 사용하는 경우 HTTP는 SSL과 통신하고 SSL이 TCP와 통신하게 됩니다.
HTTPS는 완전히 새로운 프로토콜이 아니라, HTTP 통신에 소켓 연결 부분을 SSL로 대체하고 있을 뿐입니다.
SSL을 사용하면 서버, 클라이언트 모두 암호화된 데이터를 복호화 하는 과정이 필요하기 때문에 자원 소모가 발생하게 됩니다.
따라서 SSL을 사용하면 성능이 조금 느리다는 점이 있지만, 보안이 중요하기 때문에 세계적으로 HTTPS 사용을 권장하고 있습니다.
모든 웹 페이지에서 HTTPS를 사용하지 않는 이유
- 평문 통신에 비해서 암호화 통신은 CPU나 메모리 등 리소스가 많이 필요하다.
- 통신할 때마다 암호화를 하면 많은 리소스를 소비하게 되어 서버 한 대당 처리할 수 있는 리퀘스트 수가 줄어든다.
그렇기 때문에 민감한 정보를 다룰 때만 HTTPS에 의한 암호화 통신을 사용한다.
하지만 최근 HTTP 2.0이 발전되면서 HTTPS가 HTTP보다 빠르다고 하니 면접시 적절히 대답하시길..!
https://brenden.tistory.com/45
http://blog.wishket.com/http-vs-https-차이-알면-사이트의-레벨이-보인다/
https://victorydntmd.tistory.com/95
https://opentutorials.org/course/228/4894