프로그래밍

[HTTPS] HTTP와 HTTPS

aSpring 2023. 11. 29. 10:24
728x90
728x90

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 프로토콜을 사용

 

좌 HTTP      우 HTTPS

 

728x90
728x90