HTTP(Hypertext Transfer Protocol)
- 서버와 클라이언트간에 데이터를 주고 받는 프로토콜
- 텍스트, 이미지, 영상, JSON 등 거의 모든 형태의 데이터 전송 가능
- HTTP/1.1이 가장 보편화 되어있고, HTTP/3까지 개발된 상태
- 주로 TCP를 사용하고, HTTP/3부터는 UDP 사용
- 80번 포트
- 별다른 보안 조치가 없어 누군가 네트워크 신호를 가로챈다면 HTTP의 내용은 그대로 외부에 노출됨
- 애플리케이션 레벨의 프로토콜, TCP/IP 위에서 작동
- 상태를 가지고 있지 않는 Stateless 프로토콜
- Method, Path, Version, Headers, Body 등으로 구성
HTTPS
- HTTP over TLS, HTTP over SSL, HTTP Secure
- 월드 와이드 웹 통신 프로토콜인 HTTP의 보안이 강화된 버전
- TCP/IP 443 포트 사용
- 민감한 트래픽(인증, 전자상거래 등)에 이용
- http의 보안문제를 해결하기 위해 SSL(= TLS)(인터넷에서 데이터를 안전하게 전송하기 위한 통신 프로토콜)을 도입
- 공개키를 공개하여 클라이언트 측에서 암호화된 데이터를 서버로 보내면 서버가 비밀키로 복호화
- 암호화/복호화 과정이 필요해 HTTP보다 속도가 느림(오늘날에는 거의 차이를 못 느낄 정도)
- 인증서를 발급하고 유지하기 위한 추가 비용 발생
HTTPS를 사용하는 이유
- 기밀성 : 인터넷과 같은 공공 매체에서 두 참여자 간의 통신을 보호함
- 무결성 : 변조되지 않은 정보로 목적지에 도달하게 함
- 인증 : 웹사이트의 진위 여부 확인 가능
장점
- 보안
- 검색 우선순위
구글, 네이버 등의 검색 포털 사이트에서 검색 엔진 최적화(SEO: Search Engine Optimization)을 통해 https를 상위 노출
HTTP vs HTTPS
HTTP | HTTPS |
www(World Wide Web)을 위한 통신의 기초로 정의 | 추가 보안 인증서와 함께 작동하는 HTTP이므로 인터넷에서 데이터를 안전하게 전송 가능 |
80번 포트 | 443번 포트 |
애플리케이션 계층(application layer) | 전송 계층(transport layer) |
TCP/IP 수준에서 동작 | 별도의 프로토콜이 없으며, HTTP를 통해 실행되지만 TLS/SSL 암호화 연결을 사용 |
시원 확인을 위해 인증서를 요구하지 않음 | 신원을 확인하기 위해 SSL 인증서 필요 |
속도가 빠름 | 리다이렉션 및 데이터 암호화로 인해 속도가 느려짐(과거가 아닌 현재 환경에서는 큰 차이 느껴지지 않음) |
단순한 정보를 전달하기 위한 웹사이트에 적합 | 신용/직불 카드 세부 정보, 개인 정보 등과 같은 중요한 데이터를 다루는 웹사이트에 적합 |
[참고자료]
https://brunch.co.kr/@hyoi0303/10
https://hyeran-story.tistory.com/159
https://jeonyoungho.github.io/posts/HTTP%EC%99%80HTTPS%EC%9D%98%EC%B0%A8%EC%9D%B4/
https://webprogramcustom.tistory.com/60
https://antstudy.tistory.com/250
https://dkrnfls.tistory.com/361
'CS > WEB' 카테고리의 다른 글
URL vs URI vs URN (0) | 2022.10.24 |
---|---|
SSO(Single Sign-On)란? (0) | 2022.10.24 |
OpenID, OIDC(OpenID Connect)란? (0) | 2022.10.24 |
Authentication(인증) vs Authorization (인가) (0) | 2022.10.24 |
OAuth란? (OAuth2.0) (0) | 2022.10.24 |