HTTP와 HTTPS
- HTTP : HyperText Transfer Protocol, 웹 서버와 클라이언트가 리소스를 교환하기 위해 사용하는 프로토콜
-> 클라이언트가 요청하면 서버가 응답함
- HTTP 메시지 : HTTP 서버와 클라이언트가 교환하는 데이터
-> 헤드 / 바디로 구성되며, 각 줄은 CRLF로 구분됨
- 헤드 : 메시지에 대한 정보, 헤드의 끝에는 CRLF가 한 줄 있음
- 바디 : 클라이언트 -> 서버, 서버 -> 클라이언트 에 전달할 데이터
- HTTP 요청(Request) : 클라이언트가 서버에게 특정 동작을 요청하는 메시지
- 메소드(Method) : 요청 URI가 가리키는 리소스에 대해, 서버가 수행했으면 하는 동작을 지정
- 요청 URI(Request-URI) : 메소드의 대상이 되는 리소스를 지정
- HTTP 응답(Response) : 요청을 처리한 결과 및 이유, 그리고 클라이언트에 전송할 웹 리소스를 포함하는 메시지
- 상태 코드 (Status Code) : 요청을 처리한 결과
- 처리 사유(Reason Phrase) : 상태 코드가 발생한 이유
- HTTP의 응답, 요청 : 평문으로 전달 -> 누군가 이를 가로챈다면 중요한 정보가 유출될 수 있음
ex) 로그인 시 전송한 POST 요청 : 대개 이용자의 ID, 비밀번호가 포함됨 -> 중간에 가로채면 이용자의 계정이 탈취당할 수 있음
HTTPS(HTTP over Secure socket layer)
- TLS(Transport Layer Security) 프로토콜을 도입 -> 이런 문제점을 보완
-> 다시 말하면 TLS를 이용하여 HTTP의 약점을 보완한 프로토콜
- TLS는 서버와 클라이언트 사이에 오가는 모든 HTTP 메시지를 암호화 -> 공격자가 중간에 메시지를 탈취하더라도 이를 해석하는 것은 불가능 -> 결과적으로 HTTP 통신이 도청/변조로부터 보호됨
- 웹 서버 URL이 http://로 시작되면 HTTP, https://로 시작되면 HTTPS 프로토콜을 사용
'프로그래밍' 카테고리의 다른 글
컴파일(Compile)과 런타임(Runtime) (3) | 2023.12.06 |
---|---|
[OOP] 객체 지향 프로그래밍의 5가지 설계 원칙 (1) | 2023.11.29 |
[REST API] REST API란? (1) | 2023.11.28 |
[HTTP] HTTP 응답 상태 코드 (0) | 2023.11.25 |
[HTTP] HTTP 메세지란, 요청 HTTP 메세지, 응답 HTTP 메세지 (1) | 2023.11.23 |