wan-stack
HTTP vs HTTPS 차이! 본문
HTTP (Hypertext Transfer Protocol)
서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜
>웹 서핑을 할 때, 서버에서 브라우저로 데이터를 전송해 주는 용도로 가장 많이 사용
인터넷 초기에 모든 웹 사이트에서 기본적으로 사용되었던 프로토콜
상태를 가지고 있지 않은 Stateless 프로토콜
암호화 되지 않은 평문 데이터를 전송하는 프로토콜 > 보안부분의 취약점이 있다.
HTTPS (Hypertext Transfer Protocol Secure)
HTTP 프로토콜의 문제점은 서버에서부터 브라우저로 전송되는 정보가 암호화되지 않는다는 것
즉, 데이터가 쉽게 도난당할 수 있다.
HTTPS 프로토콜은 SSL(Secure Socket Layer_보안 소켓 계층)을 사용함으로 문제를 해결
SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고,
서버 브라우저가 민감한 정보를 주고받을 때 도난당하는 것을 막아준다.
차이,
두 프로토콜 사이에 가장 커다란 차이는 바로 SSL 인증서
HTTPS는 쉽게 말해 HTTP 프로토콜에 보안 기능을 추가한 것이라고 할 수 있다.
SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데,
쉽게 말하면 데이터를 암호로 바꾸는 것이라고 생각하면 쉽다
전송된 데이터가 중간에 누군가 훔쳐 낸다고 하더라도 데이터가 암호화되어 있기에
해독할 수 없다.
HTTPS는 TLS(전송 계층 보안) 프로토콜을 통해서도 보안을 유지한다.
TLS는 데이터 무결성을 제공하기 때문에 데이터가 전송 중에 수정되거나 손상되는 것을 방지하고,
사용자가 자신이 의도하는 웹사이트와 통신하고 있음을 입증하는 인증 기능도 제공한다.
HTTP
클라이언트- 서버 모델을 따르는 프로토콜, TCP/IP 위에서 동작하며 80번 포트를 사용하여 통신
평문으로 데이터를 전송한다.
1. 비 - 연결 지향(Connetionless)
클라이언트가 서버에게 리소스를 요청한 후 응답을 받으면 연결을 끊어버리는 특징
2. 무상태성(Stateless)
각각의 요청이 독립적으로 여겨지는 특징, 서버는 클라이언트의 상태를 유지하지 않는다.
즉, 각 클라이언트에 맞게 리소스를 응답하는 것이 불가능
이를 해결하기위해 쿠키나 세션 또는 토큰의 방식의 OAuth 및 JWT가 사용된다.
HTTP Method
클라이언트가 서버에게 요청방법을 정의하는 것으로 주어진 리소스에 수행하길 원하는 행동
- GET : 서버에서 조회할 리소스를 요청 (READ, 조회)
- POST : 서버에게 본문(Body)에 생성할 데이터를 삽입하여 전송한다.(CREATE, 생성)
- PUT : 서버에게 본문에 수정할 데이터를 삽입하여 전송한다. (UPDATE, 수정)
- DELETE : 서버에게 삭제할 리소스를 요청한다. (DELETE, 삭제)
- PATCH : PUT과 비슷하지만 일부만 수정한다는 점에서 다르다.
응답 상태코드
서버가 클라이언트에게 요청을 받으면 응답상태에 따라서 다른 상태코드를 클라이언트에게 돌려준다.
- 1** (요청에 대한 정보) : 요청을 받았으면 작업을 계속한다.
- 2** (성공) : 요청을 성공적으로 수행한다.
200 : 성공
201 : 새 리소스 작성
202 : 요청 접수, 아직 처리는 안함
- 3** (리다이렉션) : 클라이언트가 요청을 마치기 위해 추가적인 동작을 취해야 한다.
300 : 여러개의 응답, 선택해야함
301 : 영구이동, 요청한 페이지가 영구적으로 이동됨
302 : 임시이동, 현재 응답임, 다른 페이지이긴 하지만 임시적임
- 4** (클라이언트 오류) : 클라이언트에 오류가 있다.
401 : 권한 없음
403 : 금지됨, 리소스에 대한 권한 없음
404 : 찾을 수 없음, 서버에 없는 페이지
- 5** (서버오류) : 서버에 오류가 있다.
500 : 내부 서버오류
501 : 요청 수행 기능 없음, 메서드 인식 불가
503 : 서비스 사용불가
HTTPS
HTTPS는 HTTP에 데이터 암호화가 추가된 프로토콜
443 포트를 기본으로 사용하며 네트워크 상에서 제 3자가 정보를 볼 수 없도록 암호화하여 전송
HTTPS 프로토콜은 SSL(보안 소켓 계층)을 이용해서 HTTP의 보안상 문제를 해결했으며,
SSL은 서버와 브라우저 사이에 안전하게 암호화된 연결을 만들 수 있게 도와주고 서버 브라우저가
민감한 정보를 주고 받을 때 도난당하는 것을 막아준다.
HTTPS의 보안 방식
SSL 인증서를 HTTP 프로토콜에 추가하여 만들어진 것이 HTTPS이며,
SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화하는데 이용된다.
따라서, 제 3자가 데이터를 훔쳐낸다고 하더라도 데이터가 암호화처리 되어 있기 때문에
해독할 수 없어 데이터를 읽을 수 없다.
그리고, HTTPS는 TLS(전송 계층 보안) 프로토콜을 사용해서 보안을 유지한다.
TLS는 데이터 무결성을 보장해서 전송 중에 수정되거나 손상되는 것을 방지하며
사용자가 접속하려는 웹 사이트와 통신하고 있음을 증명할 수 있는 인증 기능도 가지고 있다.
참고,
https://yozm.wishket.com/magazine/detail/130/
HTTP vs HTTPS 차이, 알면 사이트의 레벨이 보인다. | 요즘IT
여러분이 지금 보고 있는 그 웹사이트, 주소가 HTTP로 시작하나요? 아니면 HTTPS로 시작하나요? HTTP vs HTTPS 차이를 알면 그 사이트의 보안성과 SEO품질을 알 수 있는데요. 이번 시간 HTTP vs HTTPS의 차이
yozm.wishket.com
https://velog.io/@rlaclgns321/HTTP
HTTP, HTTPS, HTTP & HTTPS 차이점
클라이언트-서버 모델을 따르는 프로토콜로 TCP/IP 위에서 동작하며 well-known 포트인 80번 포트를 사용하여 통신한다. 첫번째 표준은 HTTP/1.1이며 이후로 HTTP/2 및 HTTP/3가 등장하였다. 여기선 HTTP/1.1
velog.io