HTTP란 웹사이트에서 브라우저(크롬, 엣지 등 클라이언트)와 서버(네이버, 구글 같은 웹사이트의 컴퓨터)가 서로 데이터를 주고받는 방법과 규칙이다. HTTP로는 문서, 사진 등 많은 걸 넣어서 전송할 수 있지만 요즘엔 서버 간의 통신도 HTTP로 할 수 있다.
HTTP를 쉽게 설명하면, 서로 통신할 때 사용하는 약속된 규칙
1. 클라이언트 요청(Request)
클라이언트가 서버에게 데이터를 요청할 때, HTTP 요청 메세지를 생성하여 서버로 전송한다.
요청하는 쪽이 서버에게 보내는 메시지
GET /index.html HTTP/1.1
Host: example.com
2. 서버의 응답(Response)
서버는 클라이언트의 요청을 처리하고 HTTP 응답 메세지를 생성하여 클라이언트로 전송한다.
서버가 클라이언트에게 보내는 메시지
HTTP/1.1 200 OK
Content-Type: text/html
<여기에 HTML 내용>
3. 연결 종료
HTTP는 비연결성(Connectionless) 특성을 가져서 요청과 응답이 끝나면 연결이 종료된다.
보안이 없다!
HTTP에 보안(암호화) 기능을 추가한 버전이 HTTPS이다.
1. 데이터 암호화
SSL/TLS란, 서버와 클라이언트 사이의 통신 내용을 암호화하는 기술
- SSL(Secure Sockets Layer) : 예전에 썼던 암호화 기술(구식)
- TLS(Transport Layer Security) : SSL을 개선한 최신 암호화 기술(더 안전하고 효율적인 암호화 기술)
2. 서버 인증
3. 데이터 무결성
| 항목 | HTTP | HTTPS |
|---|---|---|
| 보안 | 암호화 없음 | 암호화 적용(SSL/TLS 사용) |
| 주소 시작 | http:// | https:// |
| 인증서 | 필요 없음 | 서버의 인증서 필요(CA에서 발급받은 인증서 사용) |
| 통신 속도 | 빠름 | 조금 느림(암호화 작업이 있음) |
| 사용 포트 | 80번 포트 | 443번 포트 |
| 신뢰성 | 중간자 공격 가능 | 중간자 공격 방지 |
여기서 포트란?
- 컴퓨터가 통신할 때 사용하는 통신 통로
- 각각의 서비스는 고유한 포트 번호를 씀
HTTP - 80번
HTTPS - 443번
포트 번호는 컴퓨터가 서로 통신할 때 어떤 서비스를 이용할지 구분하기 위한 번호이다. 약속된 번호이기 때문에 웹에서는 80, 보안 웹은 443으로 정해졌다.
HTTPS는 HTTP에 보안을 더한 버전으로,
웹사이트와 사용자가 안전하게 데이터를 주고받을 수 있도록 도와준다.
암호화된 통신과 인증서를 통해 보안과 신뢰성을 제공하며,
중간에서 데이터를 탈취하려는 해킹 시도를 방지한다.
지금까지 HTTP와 HTTPS의 개념, 차이점, 그리고 HTTPS가 왜 중요한지에 대해 알아보았습니다.
긴 글 읽어주신 분들 감사드리고 앞으로도 열심히 배우며 성장하도록 하겠습니다!