HTTP 와 HTTPS

Zn's Log·2023년 6월 12일
post-thumbnail

HTTP (HyperText Transfer Protocol)


HTTP는 하이퍼텍스트 전송 프로토콜의 약자로, 서로 다른 시스템들 사이에서 통신을 주고받게 해주는 가장 기초적인 프로토콜이다.

우리가 평소에 쓰는 URL의 구조는 3개로 구분할 수 있다.
1. http:// 자원에 접근하기 위한 http 프로토콜
2. www.~~ : 서버의 위치
3. /~~/~ : 서버에서 컴퓨터가 요청한 자원의 위치
이 URL을 통해 클라이언트가 정보 송신을 요청하면 서버는 요청에 맞는 정보를 응답한다.
다음 그림을 보면 좀 더 이해하기 쉬울 것이다.

http에 대한 이해

우리도 F12의 네트워크를 이용해 어떤 요청을 보내고 받았는지 확인할 수 있다.

올바르게 요청을 보내고 응답 받았을 경우 200코드를 반환한다.

그럼 잘못된다면?

응답오류

404 Not Found를 본적이 있는가? 이런경우 송수신 과정에서 오류가 생겼다는 것을 의미한다.
4로 시작하는 경우 클라이언트의 오류를, 5로 시작하는 경우 서버 오류를 의미한다. 이 중 비교적 접하기 쉬운 오류 몇가지만 살펴보자.

403 : 서버가 요청을 거부하는 경우. 사용자가 필요한 권한을 가지고 있지 않을 때 발생
404 : Not Found. 클라이언트가 송신 요청한 정보를 서버가 가지고 있지 않을 때 발생. 요청을 보낸 위치가 잘못된 경우, 보유하지 않은 정보를 요청한 경우이다.
500 : 서버오류. 서버에 오류가 있어 요청을 수행할 수 없는 경우이다.

HTTPS (Hypertext Transfer Protocol Secure)는 왜 생겨났을까?


HTTPS는 하이퍼 텍스트 전송 프로토콜 보안(Hypertext Transfer Protocol Secure)의 약자입니다.

HTTP의 장점은 확실하다. 간편하기 때문에 데이터를 주고 받기 좋고, 빠르다는 점.
하지만 치명적인 단점을 가지고 있다.

  1. 암호화 되지 않은 방식으로 데이터를 주고 받음 : 데이터를 중간에 가로챌 수 있음.
  2. 상대방이 누군지 확인하지 않고 요청 / 응답을 보냄. 중간에 상대방인 척 하고 데이터를 가로챌 수 있음.

이렇듯 정보의 도난이나 변조, 도청이 가능하기 때문에 중요 정보를 가지고 통신하기엔 너무 위험하다. 이를 해결해준 것이 바로 HTTPS 이다.

HTTPS는 HTTP의 일반 텍스트에 SSL이나 TLS프로토콜을 씌워 데이터를 암호화하는 기법이다.

  • SSL : Secure Socket Layer의 약자로, 컴퓨터 네트워크에 통신 보안을 제공하기 위해 설계된 암호 규약.
  • TLS : Transport Layer Security의 약자. SSL의 향상된, 더욱 안전한 버전.

SSL 인증서는 사용자가 사이트에 제공하는 정보를 암호화해서, 누군가 훔쳐낸다고 하더라도 안전하게 만들 수 있다. TLS는 데이터 무결성을 제공하기 때문에 데이터가 전송 중에 수정되거나 손상되는 것을 방지하고, 사용자가 자신이 의도하는 웹사이트와 통신하고 있음을 입증하는 인증기능도 제공한다.

HTTPS는 대칭 키 방식과 비대칭 키 방식을 같이 사용하여 각각의 단점을 보완합니다.

대칭 키 방식과 비대칭 키 방식에 대해서는 다음 글에서 다뤄보도록 하자.

HTTPS의 장점

HTTPS의 장점은 보안만 있을까?
아니다. 2014년 구글은 보안의 중요성을 언급하며 HTTPS 보안 프로토콜을 사용하는 웹사이트에 대해 SEO(검색엔진 최적화) 혜택을 주겠다고 했다. 따라서 HTTP 사이트보다 HTTPS를 사용할 경우 더 많은 사용자들을 불러 모을 수 있다. (안전하다는 점에서도 사용자들이 더 많이 찾음..)

또한 HTTP 웹사이트에 대해서는

이렇게 사용에 주의를 준다는 점.

마치며 ...

대칭키 암호방식과 비대칭 키 암호방식까지 다루고 싶었는데 둘로 나누는 게 더 나을 것이라고 판단했다.
HTTPS가 보안적으로 낫다는 이야기는 들어본 적 있었는데 실제로 둘의 차이를 알아보고, 다른 장점에 대해서도 알아볼 수 있어서 좋은 주제였던 것 같다.

Reference

http 그리고 https의 이해
http vs https 차이, 알면 사이트의 레벨이 보인다.
HTTPS 통신환경 구축하기
[Network] 대칭키/공개키 (Symmetric Key/Public Key)

0개의 댓글