HTTP vs HTTPS

trevor1107·2021년 2월 17일
0

네트워크

목록 보기
5/6

HTTP

HTTP(Hyper Text Transfer Protocol)란 클라이언트와 서버간의 데이터를 주고 받기 위한 프로토콜이다.

HTTP의 특징

  • 애플리케이션 레벨의 프로토콜로 TCP/IP을 기반으로 한다.
  • 클라이언트에서 요청(request)를 보내면 서버는 요청을 처리해서 응답(response)
  • 기본 포트는 80이다.
  • 연결 상태를 유지하지 않은 비상태연결성(Stateless, Connectless) 프로토콜

비상태연결(Stateless, Connectless)

서버에 연결하고 요청해서 응답 받으면 연결을 끊어버리는 것을 말한다.

장점

데이터를 주고 받기 위한 각각의 데이터 요청이 서로 독립적으로 관리가되며, 이전 데이터 요청과 다음 데이터 요청이 서로 관련이 없어져 서버는 세션과 같은 별도의 추가 정보를 관리하지 않아도 되고 다수의 요청 처리 및 서버 부하를 줄일 수 있다.
그래서 접속 유지를 최소화하고 불특정 다수를 대상으로 하는 서비스에 유리하다.

단점

연결을 끊어버리기 때문에 클라이언트의 이전 상태를 알 수 없어 로그인을 해도 정보유지가 불가능하다. 이런 단점을 해결하기 위해서 쿠키(Cookie)와 세션(Session)이 생겨났다.

Keep-Alive

HTTP 1.1버전 부터는 Keep-Alive 기능을 지원한다.
HTTP는 하나의 연결에 하나의 요청을 하는 것을 기준으로 설계가 되었다. 문서에 여러개의 파일이 있다면 계속 연결과 다운 하고 연결을 끊어야한다. 그러다 보면 TCP 통신 과정에서 비용이 많이 소모된다.
그래서 나온 것이 keep-alive인데 지정된 시간동안 연결을 끊지 않고 요청을 계속해서 보낼 수 있다.

HTTPS

인터넷 상에서 정보를 암호화하는 SSL을 이용하여 클라이언트와 서버가 데이터를 주고 받는 통신 규약이다. HTTP에 데이터 암호화가 추가된 프로토콜이다.

SSL(Secure Socket Layer): 인터넷 상에서 데이터를 안전하게 전송하기 위한 인터넷 암호화 통신 프로토콜을 말한다. OSI 7계층인 응용 계층과 4계층인 전송 계층 사이에 독립적인 프로토콜을 만들어서 동작한다.

HTTPS의 특징

  • HTTPS의 기본 포트는 443이다
  • 네트워크 상에서 중간에 제3자가 정보를 볼 수 없도록 공개키 암호화를 지원하고 있다.
  • 보안상의 이유로 HTTP 보다 많이 느린편이다.
  • 검색엔진 최적화(SEO)에 대해 큰 가산점이 있는 검색 사이트가 있어서 혜택을 볼 수 있다.(구글 등)
  • 구글에서 만든 가속화된 모바일페이지(AMP : Accelerated Mobile Pages)를 지원 받을 수 있다.

이미지 출처: raonctf

기밀성

HTTPS는 인터넷과 같은 공공 매체에서 두 참여자 간의 통신을 보호한다. 예를 들어, HTTPS가 없다면 와이파이Wi-Fi 액세스 포인트Access Point를 운영하는 사람은 액세스 포인트를 사용하는 사람이 온라인에서 무언가를 구입할 때 신용카드와 같은 개인정보를 볼 수도 있다.

무결성

HTTPS는 변조되지 않은 정보로 목적지에 도달하게 한다. 예를 들어, 와이파이가 웹사이트에 광고를 추가하거나, 대역폭을 절약하고자 이미지 품질을 저하시키거나, 읽는 기사의 내용을 변조할 수 있지만 HTTPS는 웹사이트를 변조할 수 없도록 한다.

인증

HTTPS를 통해 웹사이트의 진위 여부를 확인할 수 있다. 예를 들어, 와이파이 액세스 포인트을 운영하는 사람이 가짜 웹사이트를 브라우저에 보낼 수도 있다. HTTPS는 example.com이라는 웹사이트가 실제로 example.com인지 확인한다. 일부 인증서는 yourbank.com이 YourBank.Inc라는 걸 알리기 위해 해당 웹사이트의 법적 신원을 검사하기도 한다.

이미지 출처: D.young

HTTPS로 전환하려면 고려해야할 사항

사이트가 HTTP에서 HTTPS로 바뀌었음을 구글에게 알려주세요.

전환 되었음을 구글에서 알 수 없으니 알려야합니다.

SSL인증에 대한 여러종류의 인증서가 있습니다.

싱글 도메인(Single Domain), 멀티플 도메인(Multiple Domain), 와일드카드(Wildcard) SSL 인증서 등이 있습니다. 싱글 도메인 인증서는 한 개의 도메인 또는 그 서브 도메인을 위해서 발행되는 것입니다. 멀티플 도메인 인증서는 통합 커뮤니케이션 인증서라고도 불리는데, 메인 도메인 이름을 비롯해서 최대 99개까지의 대체 도메인 이름을 보호할 수 있게 해줍니다. 와일드카드 인증서는 웹사이트 URL은 물론이고 서브도메인도 무제한으로 보호할 수 있게 해줍니다.

모든 리소스에 대해서는 상대 경로를 사용해야 합니다.

상대 경로(relative URL)를 사용하게 되면, 해당 웹사이트에 사용된 모든 요소들이 안전한 프로토콜을 사용하는 동일한 도메인 안에 존재하고 있다는 것을 알려주는 것입니다.
HTTP를 사용해서 구축한 사이트를 구글이 크롤링하는 것을 막지 않도록 해야 합니다.
일반적으로 웹사이트에는 로봇이 접근하는 것을 방지하는 정책을 기술한 robot.txt라는 파일을 두고 있습니다. 그런데 이파일에서 구글의 크롤링을 차단하고 있다면, 여러분의 검색엔진 최적화(SEO)에 있어서 손해를 입게 되고 검색 순위에 있어서도 좋은 평가를 받지 못할 것 입니다. 테스트 버전의 서버를 업데이트 하는 과정에서 이 파일을 수정하지 않아서 이런 일이 벌어지는 경구가 있습니다.

검색엔진이 여러분의 웹사이트에 있는 페이지들을 인덱싱하는 것을 허용해야 합니다.

물론 여러분은 검색엔진이 이런 일을 하는 것을 막을 수 있는 선태권이 있지만, 그렇게 하면 결국엔 SEO를 개선하려는 노력이 물거품이 되고, 검색 결과에서 아예 사라질 수도 있습니다. 그리고 그걸 되돌리려면 많은 시간이 걸릴 수도 있습니다.

HTTP에서 HTTPS로 전환하는 과정을 세심하게 추적해야 합니다.

구글 웹마스터 툴(Google Webmaster Tools)을 비롯한 분석 소프트웨어를 이용하면 모든 것들이 원활하게 진행되고 있는지를 확인할 수 있습니다. 그리고 문제가 발생했다면 최대한 빠르게 조치를 해서 여러분의 SEO가 손상되는 일이 없도록 해야 합니다.

profile
프론트엔드 개발자

0개의 댓글