HTTP란?
- 웹에서 데이터를 주고받기 위한 통신 프로토콜
- 웹 브라우저와 서버 간의 통신을 가능하게 해 주는 기본적인 방식
- 클라이언트(주로 웹 브라우저)가 서버에 요청을 보내고, 서버가 그 요청에 대한 응답을 보내는 방식으로 작동
HTTP의 주요 특징
- 클라이언트-서버 구조
클라이언트(사용자가 웹사이트를 방문할 때 사용하는 브라우저)가 서버에 요청을 보내면, 서버(웹사이트)는 요청에 응답한다. 예를 들어, 사용자가 웹사이트를 열면 클라이언트는 서버에 HTML, CSS, 이미지 등을 요청하고, 서버는 그 데이터를 반환한다 - 무상태(Stateless) 프로토콜
이전 요청에 대한 정보를 서버가 유지하지 않으며, 각 요청은 독립적으로 처리된다. 이로 인해 매번 요청 시 필요한 정보를 함께 보내야 한다 - HTTP 메서드 HTTP는 다양한 요청 메서드를 지원한다
- GET: 서버에서 데이터를 가져오는 요청 (예: 웹 페이지를 요청)
- POST: 서버에 데이터를 보내는 요청 (예: 폼 제출)
- PUT: 서버에 데이터를 전체 업데이트하는 요청
- PATCH: 서버의 데이터를 일부 업데이트하는 요청
- DELETE: 서버에서 데이터를 삭제하는 요청
- HTTP 상태 코드 서버는 요청에 대한 상태를 나타내는 상태 코드를 응답한다
예시)
- 200 OK: 요청이 성공적으로 처리되었음을 의미
- 404 Not Found: 요청한 리소스를 찾을 수 없음을 의미
- 500 Internal Server Error: 서버에서 오류가 발생했음을 의미
HTTPS란? HTTP는 데이터를 암호화하지 않기 때문에 민감한 정보를 주고받을 때 보안에 취약하다
HTTPS(Hypertext Transfer Protocol Secure)는 SSL/TLS 암호화를 통해 데이터를 안전하게 주고 받을 수 있게 한다
SSL : 인터넷에서 데이터가 안전하게 전송될 수 있도록 해주는 초기의 암호화 프로토콜
TLS : TLS는 SSL의 후속 버전. 더 향상된 보안을 제공하는 프로토콜. 현재 대부분의 웹사이트는 SSL 대신 TLS를 사용하고 있으며 SSL은 더 이상 사용되지 않고, TLS가 표준으로 자리 잡았다
SSL/TLS 암호화의 작동 방식
- 핸드셰이크 과정: 클라이언트와 서버가 SSL/TLS 연결을 설정하기 위해 서로 인증하고, 암호화 키를 교환한다
이 과정에서 대칭키 암호화와 비대칭키 암호화를 모두 사용한다 - 서버 인증서: 서버는 SSL/TLS 인증서를 클라이언트에게 보내 서버의 신뢰성을 증명한다
이 인증서는 서버가 신뢰할 수 있는 사이트라는 것을 보증한다 - 세션 키 생성: 클라이언트와 서버는 서로의 공개키(비대칭키의 공개키 / 개인키 중)를 사용해 안전하게 세션 키를 생성한다
- 세션 키 : 암호화된 통신 세션에서 데이터를 암호화하는 데 사용되는 일회성 대칭 키
대칭키 방식은 매우 빠르기 때문에 데이터를 안전하고 효율적으로 암호화한다
- 세션 키 : 암호화된 통신 세션에서 데이터를 암호화하는 데 사용되는 일회성 대칭 키
- 데이터 암호화: 세션이 설정된 후 클라이언트와 서버 간에 주고받는 모든 데이터는 이 세션 키로 암호화되어, 네트워크 상에서 가로채더라도 해독할 수 없도록 보호된ㄷ
'Study' 카테고리의 다른 글
| CSS에서 margin과 padding의 차이 (0) | 2024.10.08 |
|---|---|
| HTTP, REST, REST API에 대해 (0) | 2024.10.07 |
| 주소창에 google.com을 입력하면 일어나는 일 (1) | 2024.08.31 |
| 리플로우(Reflow)와 리페인트(Repaint)가 실행되는 시점 (0) | 2024.08.30 |
| 브라우저의 렌더링 원리 (0) | 2024.08.30 |