HTTP/HTTPS 비교 및 적용하는 법

Boseong Choi·2023년 5월 31일
0

Web

목록 보기
6/9
post-thumbnail

1. HTTP

HTTP(하이퍼텍스트 전송 프로토콜)은 월드 와이드 웹(WWW)의 토대이며, 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용된다. HTTP는 네트워크 장치 간에 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜이며 네트워크 프로토콜 스택의 다른 계층 위에서 실행된다. HTTP를 통한 일반적인 흐름에는 클라이언트에서 서버로 요청한 다음 서버에서 응답 메시지를 보내는 작업이 포함된다.

📌 HTTP 요청 구성요소

1. HTTP 버전 유형

  • HTTP/0.9 (1991년)
  • HTTP/1.0 (1996년)
  • HTTP/1.1 (1997년) : 가장 많이 사용중인 버전
  • HTTP/2.0 (2015년) : HTTP 1.1의 성능 개선 및 확장
  • HTTP/3.0 (진행중)

2. URL

3. HTTP 메서드

  • 서버에서 기대하는 작업을 나타낸다. 주로 GETPOST 형식이다.

4. 요청 헤더

  • Key-Value 형식에 저장된 텍스트 정보가 포함되어 있으며, 헤더는 모든 HTTP 요청에 포함된다.
  • Chrome의 네트워크 탭에 있는 HTTP 요청 헤더의 예

5. 선택 사항인 HTTP 본문.

전송되는 정보의 본문을 포함하는 부분이다. 본문에는 사용자 이름 및 비밀번호 또는 양식에 입력된 기타 데이터와 같이 서버에 제출되는 정보가 포함된다.

📌 HTTP 응답 구조

클라이언트에서 요청에 대한 응답을 말한다. HTTP 요청에서 요청된 내용을 기반으로 정보를 전달한다.

1. 상태 코드

  • 1XX Informational
  • 2XX 성공
  • 3XX 리디렉션
  • 4XX 클라이언트 오류
  • 5XX Server Error

2. 응답 헤더

요청과 마찬가지로 데이터의 언어 및 형식과 같은 정보를 전달하는 헤더가 제공된다.


2. HTTPS

하이퍼텍스트 전송 프로토콜 보안(HTTPS)은 웹 브라우저와 웹 사이트 간에 데이터를 전송하는 데 사용되는 기본 프로토콜인 HTTP의 보안 버전. HTTPS는 데이터 전송의 보안을 강화하기 위해 암호화됩니다. 이는 사용자가 은행 계좌, 이메일 서비스, 의료 보험 공급자에 로그인하는 등 중요한 데이터를 전송할 때 특히 중요하다.

모든 웹 사이트, 특히 로그인 자격 증명이 필요한 웹 사이트는 HTTPS를 사용해야 한다. 크롬 등 최신 웹 브라우저에서는 HTTPS를 사용하지 않는 웹 사이트가 HTTPS를 사용하는 웹 사이트와 다르게 표시된다. Google Chrome 및 기타 브라우저에서는 HTTPS가 아닌 모든 웹 사이트는 안전하지 않은 것으로 표시된다.

📌HTTPS가 중요한 이유

HTTPS는 웹 사이트에서 네트워크를 스누핑 하는 사람이 쉽게 볼 수 있는 방식으로 정보를 브로드캐스트하는 것을 방지한다. 또한, 데이터를 도청하거나 변조하는 것을 방지할 수 있다. 또한 HTTPS는 웹사이트의 신원을 확인하여 사용자에게 신뢰성을 제공한다. HTTPS를 사용하면 트래픽이 암호화되므로 패킷을 스니핑하거나 가로챈다고 해도 무의미한 문자로만 인식된다.


3. HTTP/HTTPS

별개의 프로토콜이 아니다. 즉, HTTPS는 단순히 HTTP 프로토콜을 통해 TLS/SSL 암호화를 사용하는 것. HTTPS는 특정 공급자가 주장하는 실체가 맞는지 확인하는 TLS/SSL 인증서의 전송을 기반으로 이루어진다.


4. HTTPS 적용법

I. SSL/TLS 인증서 획득

인증서 발급 기관(Certificate Authority, CA)을 통해 무료 또는 유료로 발급받을 수 있다.
CA 업체는 IdenTrust DigiCert Group Sectigo Let’s Encrypt 등이 있다.

  • Let’s Encrypt
    • 무료로 발급 가능하며 설치부터 발급까지 30분이 채 안걸릴 정도로 인증 절차가 쉽다. 인증 유효기간이 90일이라 주기적으로 갱신해줘야 하지만 자동화 기능도 제공한다.
    • 설치 과정 중 80포트는 열어놔야 한다.
    • IIS 기준 Let’s Encrypt 설치 방법

  • Sectigo
    • 직접 발급 받을수도 있지만, 대행업체를 통하여 발급받는게 경험상 편하기도하고, 신경을 덜 써도 되니 괜찮은 선택일 수 있다.
    • 인증서에 따라 서브도메인 지원이 안될수도 있으니 신중히 선택해야한다.
    • 설치 가이드

II. 웹 서버를 HTTPS로 구성

  • 웹 서버 소프트웨어(예: Apache, IIS, Nginx)의 설정을 변경해야 한다. 설정 파일에서 SSL/TLS 인증서를 지정하고, HTTPS 포트(일반적으로 443번 포트)로 트래픽을 리디렉션한다. 아래 사진은 운영 중인 프로젝트의 웹 서버(IIS)의 HTTPS 적용을 위한 포트 바인딩 설정화면이다.

profile
Frontend Developer

0개의 댓글