HTTP와 HTTPS 비교

Quro·2024년 7월 7일
0

Web

목록 보기
6/8
post-thumbnail

HTTP와 HTTPS의 차이점

HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신 규칙 즉, 프로토콜이다.
사용자가 웹 사이트를 방문하면 브라우저가 웹 서버에 HTTP 요청을 전송하고 웹 서버는 HTTP 응답으로 요청에 대해 응답한다. 간단히 말해 HTTP 프로토콜은 네트워크 통신을 작동하게 하는 기술이다.
HTTPS(Hypertext Transfer Protocol Secure)는 이름에서도 알 수 있듯이 HTTP의 확장 버전 또는 안전한 버전이다. HTTPS에서는 브라우저와 서버가 데이터를 전송하기 전에 안전하고 암호화된 연결을 설정한다.

1. 보안

HTTP: 데이터를 일반 텍스트로 전송, 중간에서 데이터를 가로챌 수 있음
HTTPS: 데이터를 암호화하여 전송, 중간에서 데이터를 가로채더라도 해독이 어려움

2. 포트 번호

HTTP: 기본적으로 포트 80 사용
HTTPS: 기본적으로 포트 443 사용

3. SSL/TLS 인증서

HTTP: 인증서 필요 없음
HTTPS: 독립된 인증 기관(CA)에서 발급받은 SSL/TLS 인증서 필요

3. 브라우저 표시

HTTP: URL 옆에 특별한 보안 표시 없음
HTTPS: URL 옆에 자물쇠 아이콘 표시, 사용자는 보안 연결임을 알 수 있음

4. SEO 및 신뢰성

HTTP: 검색 엔진 순위에서 낮게 평가, 사용자 신뢰도 낮음
HTTPS: 검색 엔진 순위에서 높게 평가, 사용자 신뢰도 높음

HTTP의 동작 방식

  • 클라이언트 요청: 사용자가 웹 사이트를 방문하면 브라우저가 웹 서버에 HTTP 요청을 전송

  • 서버 응답: 웹 서버는 요청에 대한 HTTP 응답을 전송

  • 데이터 교환: 데이터는 일반 텍스트로 전송됨

  • 요청 유형(Request Methods)

    • GET
      • 리소스(데이터)를 받기 위함
      • URL(URI) 형식으로 서버 측에 리소스를 요청
    • HEAD
      • 메세지 헤더 정보를 받기 위함
      • GET과 유사하지만, HEAD는 실제 문서 요청이 아닌 문서에 대한 정보 요청
      • Response 메세지를 받았을 때, Body는 비어있고, Header 정보만 존재
    • POST
      • 내용 및 파일 전송을 하기 위함
      • 클라이언트에서 서버로 어떤 정보를 제출하기 위해 사용
      • Request 데이터를 HTTP Body에 담아 웹 서버로 전송
    • PUT
      • 리소스(데이터)를 갱신하기 위함
      • POST와 유사하나, 기존 데이터를 갱신할 때 사용
    • DELETE
      • 웹 서버측에 요청한 리소스를 삭제할 때 사용
    • CONNECT
      • 클라이언트와 서버 사이의 중간 경유를 위함
      • 보통 Proxy를 통해 SSL 통신을 하고자할 때 사용
    • OPTIONS
      • 웹 서버 측에서 지원하고 있는 메소드가 무엇인지 알기 위해 사용
    • PATCH
      • PUT과 유사하나, 모든 데이터를 갱신하는 것이 아닌 리소스의 일부분만 수정할 때 사용
  • 응답 코드(Status Code)

    • 10x : 정보 확인

    • 20x : 통신 성공

    • 30x : 리다이렉트

    • 40x : 클라이언트 오류

    • 50x : 서버 오류

HTTPS의 동작 방식

  • 클라이언트 요청: 사용자가 https:// URL을 입력하여 웹 사이트를 방문

  • SSL 인증서 요청: 브라우저가 서버의 SSL 인증서를 요청

  • 서버 응답: 서버가 퍼블릭 키가 포함된 SSL 인증서를 전송

  • 인증서 검증: 브라우저가 인증서를 검증하고, 퍼블릭 키를 사용하여 비밀 세션 키가 포함된 메시지를 암호화하여 전송

  • 세션 키 교환: 서버가 개인 키로 메시지를 해독하고 세션 키를 생성, 세션 키를 암호화하여 브라우저에 전송

  • 보안 통신: 브라우저와 서버가 동일한 세션 키를 사용하여 암호화된 데이터 교환

HTTP/2, HTTP/3, HTTPS의 차이점

  • HTTP/1.1: 최초의 HTTP 버전, 텍스트 형식으로 데이터 전송

  • HTTP/2: 바이너리 형식으로 데이터 전송, 서버 푸시 기능 추가

  • HTTP/3: 실시간 스트리밍 및 최신 데이터 전송 요구 사항을 더 효율적으로 지원

HTTPS를 선택하는 이유

  • 보안 강화: 모든 데이터가 암호화되어 전송, 민감한 정보 보호

  • 신뢰성 증대: 검색 엔진 순위에서 우선, 사용자 신뢰도 높음

  • 성능 향상: HTTPS 웹 애플리케이션이 더 빠르게 로드

  • 정확한 분석: 추천 트래픽을 정확하게 추적 가능

profile
개발합니다

0개의 댓글