개발 하나둘셋/CS

[네트워크] HTTP와 HTTPS의 특징과 차이점

유리코딩 2021. 11. 19. 17:27
반응형

개념정리

HTTP와 HTTPS

 


 

HTTP(Hyper Text Transfer Protocol)

 

HTTP의 개념

  • 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜
  • HTTP는 인터넷에서 하이퍼텍스트를 교환하기 위한 통신 규약으로, 80번 포트를 사용한다. HTTP 서버가 80번 포트에서 요청을 기다리고 있으며, 클라이언트는 80번 포트로 요청을 보내게 된다.
  • WWW(World-Wide-Web) 기반에서 세계적인 정보를 공유하는데 큰 역할을 하였다.

* 프로토콜 : 컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙체계. 기기간 통신은 교환되는 데이터의 형식에 대해 상호 합의를 요구하는데 이런 형식을 정의하는 교칙의 집합

 

 

HTTP의 구조

1. HTTP Request(요청) 구조

[Start line]

  • HTTP Method : 요청시 보내는 HTTP 메소드 형태이다. (GET, POST, PUT, PATCH, DELETE, 기타)
  • Request Target : 어디로 보내는지에 대한 URI
  • HTTP Version : HTTP 버젼으로 현재까지는 대부분이 HTTP/1.1이고 HTTP/2, HTTP/3 까지도 있다.

[Header]

  • Host URL
  • 클라이언트 정보 : User-Agent
  • Message body
    • Accept : 서버에서 해당 타입에 데이터를 보내달라고 요청하는 헤더
    • Authorization - JWT 같은 인증 토큰을 서버로 보낼 때 사용하는 헤더
    • 기타 등등..

 

2. HTTP Response(응답) 구조

  • 위에서 요청한 요청의 HTTP Response 구조. 구조는 비슷하지만 정보가 조금 다르다.

[Start line]

  • HTTP Version : 응답온 메세지의 HTTP 버전 정보
  • Status Code : 응답 코드
  • Status text : 응답 상태

[Header]

  • Date - 응답온 날짜와 시간
  • Content-Type - 응답 데이터의 타입
  • Cache-Control - 캐시용 헤더
  • 기타 등등..

[Body]

  • 요청에 대한 응답값

 

 

HTTP의 한계

  • HTTP는 암호화가 되지 않은 평문 데이터를 전송하는 프로토콜이기 때문에, HTTP로 비밀번호나 주민등록번호 등의 개인정보를 주고 받으면 제3자가 정보를 조회할 수 있었다. 그리고 이러한 문제를 해결하기 위해 HTTPS가 등장.

 

 

HTTPS(Hyper Text Transfer Protocol Secure)

HTTPS의 개념

  • HTTP에 데이터 암호화가 추가된 프로토콜
  • HTTPS는 HTTP와 다르게 443번 포트를 사용하며, 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원

 

공개키 / 개인키

  • HTTPS는 공개키/개인키 암호화 방식을 이용해 데이터를 암호화하고 있으며, 공개키와 개인키는 서로를 위한 1쌍의 키이다.
    • 공개키: 모두에게 공개가능한 키
    • 개인키: 나만 가지고 알고 있어야 하는 키

[공개키 / 개인키 암호화의 효과]

  • 공개키 암호화: 공개키로 암호화를 하면 개인키로만 복호화할 수 있다. -> 개인키는 나만 가지고 있으므로, 나만 볼 수 있다.
  • 개인키 암호화: 개인키로 암호화하면 공개키로만 복호화할 수 있다. -> 공개키는 모두에게 공개되어 있으므로, 내가 인증한 정보임을 알려 신뢰성을 보장할 수 있다.

 

HTTPS의 또 다른 장점

[검색엔진 최적화(SEO, Search Engine Optimization)]

  • HTTPS는 보안상 우위에 있다는 것 외에도 검색엔진 최적화(SEO)에 있어 큰 이점이 있다.
  • SEO란 말그대로 검색에 최적화 되어 검색했을 때 주로 보여주는 것인데, 구글이 안전하다고 생각하는 HTTPS 웹사이트에 가산점을 주기 때문이다.

[가속화된 모바일 페이지(AMP, Accelerated Mobile Pages) 제작]

  • AMP란 모바일 기기에서 훨씬 빠르게 콘텐츠를 로딩 하기 위한 방법으로 구글이 만든 것
  • AMP는 HTML에서 불필요한 부분을 없앤 것이다.
  • 최근 스마트폰과 태블릿 사용자의 증가로 모바일 화면에서도 사용자들이 사용하기 편하도록 AMP 콘텐츠들이 다수 제작, 배포 되어 있는 것을 볼 수 있다.

 

HTTPS의 단점

  • HTTPS는 안전하게 데이터를 주고받을 수 있지만 HTTPS를 이용하면 암호화/복호화의 과정이 필요하기 때문에 HTTP보다 속도가 느리다(하지만 최근에는 거의 차이를 못느낄 정도)
  • 또한 HTTPS는 인증서를 발급하고 유지하기 위한 추가 비용이 발생한다.

정리

개인 정보와 같은 민감한 데이터를 주고 받아야 한다면 HTTPS를 이용해야 하지만, 단순한 정보 조회 등만을 처리하고 있다면 HTTP를 이용하면 되겠다.

 

 

 

 

 

 

반응형