본문 바로가기

HTTP와 HTTPS: 웹 브라우저가 웹사이트와 대화하는 규칙과 보안

📑 목차

    HTTP와 HTTPS를 알면 주소창 자물쇠의 의미가 보인다

    사용자는 웹 브라우저 주소창에 웹사이트 주소를 입력하고, 별다른 고민 없이 로그인, 쇼핑, 결제를 진행한다. 화면만 보면 단순히 “페이지가 잘 뜨는지” 정도만 신경 쓰게 된다. 그러나 그 뒤에서는 HTTP, HTTPS, 웹 브라우저, SSL/TLS, 암호화 같은 기술이 웹사이트와 브라우저 사이의 대화를 지키고 있다.

    특히 주소창 왼쪽에 있는 자물쇠 아이콘은 사이트의 보안 상태를 간단히 보여주는 신호이다. 같은 사이트 주소라도 http://로 시작하는지 https://로 시작하는지에 따라,

    • 아이디와 비밀번호,
    • 카드 번호,
    • 주민등록번호, 주소 같은 개인정보가
      중간에서 쉽게 노출될 수도 있고, 강하게 보호될 수도 있다.

    이 글은 전산학 비전공자도 이해할 수 있도록,

    • HTTP와 HTTPS가 각각 어떤 규칙인지,
    • 왜 HTTPS가 “더 안전한 웹 통신 방식”이라고 불리는지,
    • 실생활에서 사용자가 어떤 점을 확인하고 주의해야 하는지
      를 전산학 입문서 수준으로 차근차근 설명한다.

    HTTP – 웹 브라우저와 서버가 대화하는 기본 규칙

    1. HTTP란 무엇인가: 웹의 기본 언어

    HTTP(HyperText Transfer Protocol)는 웹 브라우저와 웹 서버가 서로 대화할 때 사용하는 기본 통신 규칙(프로토콜)이다.

    웹 브라우저와 서버는 다음과 같은 형식으로 대화한다.

    1. 요청(Request) – 브라우저 → 서버
      • “이 주소의 페이지를 보내 달라”,
      • “이 양식(form)에 입력한 내용을 처리해 달라” 같은 요청이다.
    2. 응답(Response) – 서버 → 브라우저
      • 요청을 처리한 결과를 HTML, 이미지, JSON 같은 형식으로 돌려준다.

    이때 HTTP는

    • 요청이 어떤 구조를 가져야 하는지,
    • 응답은 어떤 형식으로 반환해야 하는지,
    • 오류가 발생하면 어떤 코드(404, 500 등)로 알릴지
      에 대한 규칙을 정해 놓은 표준이다.

    웹 페이지를 볼 때 화면에 글자와 이미지가 잘 보이는 이유는,
    브라우저와 서버가 HTTP 규칙을 공통 언어로 사용하기 때문이다.

    2. HTTP 요청과 응답의 기본 구조

    HTTP 통신은 크게 다음과 같은 구성 요소로 이루어진다.

    1. 요청 메서드(Method)
      • GET: 서버에서 데이터를 “가져와 달라”는 의미
      • POST: 서버로 데이터를 “보내서 처리해 달라”는 의미
      • 이 외에도 PUT, DELETE 등 여러 메서드가 있지만, 비전공자 관점에서는 GET, POST 두 가지만 이해해도 충분하다.
    2. URL(주소)
    3. 헤더(Header)
      • 브라우저 종류, 언어 설정, 쿠키, 인증 정보 등 부가 정보를 담는다.
    4. 본문(Body)
      • 로그인 정보, 게시글 내용, 파일 업로드 등 실제 데이터를 담는 부분이다.
      • 주로 POST 요청에서 사용된다.

    서버의 응답 역시

    • 상태 코드(예: 200, 404, 500),
    • 응답 헤더,
    • 본문(실제 페이지 내용)
      으로 구성되어 있다.

    3. HTTP의 한계: 내용이 그대로 보이는 평문 통신

    기본 HTTP의 가장 큰 문제는 암호화가 적용되지 않은 평문 통신이라는 점이다.

    • 사용자가 브라우저에서 서버로 보내는 요청,
    • 서버가 브라우저로 돌려주는 응답
      이 네트워크 구간을 지나갈 때, 누군가가 그 내용을 가로채려 하면 그대로 읽을 수 있다는 뜻이다.

    예를 들어,

    • 공용 와이파이(카페, 공항, 호텔)를 사용할 때,
    • 같은 네트워크 안에 악의적인 사용자가 스니핑 도구를 켜 두었다면,
      • HTTP로 로그인한 아이디와 비밀번호,
      • HTTP로 전송한 개인정보,
      • HTTP로 전송되는 쿠키 값
        등이 그대로 노출될 수 있다.

    또한 HTTP는 서버가 “진짜 그 사이트가 맞는지”에 대한 보장도 하지 않는다.

    • 공격자가 중간에 가짜 사이트를 끼워 넣어도,
    • 브라우저는 단순히 HTTP 규칙만 맞으면 통신을 진행하게 된다.

    이러한 한계를 해결하기 위해 등장한 것이 바로 HTTPS이다.

     

    HTTP와 HTTPS: 웹 브라우저가 웹사이트와 대화하는 규칙과 보안
    HTTP와 HTTPS 요청·응답 흐름 비교 다이어그램


    HTTPS – 암호화와 인증으로 보안을 더한 웹 통신

    1. HTTPS란 무엇인가: HTTP 위에 보안 계층을 얹은 프로토콜

    HTTPS(HyperText Transfer Protocol Secure)는 HTTP + SSL/TLS 암호화를 결합한 프로토콜이다.

    구조를 단순화하면 다음과 같다.

    • HTTP: 브라우저와 서버가 어떤 형식으로 대화할지 정한 규칙
    • SSL/TLS: 그 대화 내용을 암호화하고, 서버 신원을 확인하며, 데이터가 중간에서 바뀌지 않았는지 확인하는 보안 계층

    따라서 HTTPS는

    1. 브라우저와 서버 사이에 보안 통로(암호화된 터널)를 먼저 만든 뒤,
    2. 그 안에서 HTTP 대화를 주고받는 방식으로 동작한다.

    브라우저 주소창에서 https://로 시작하고 자물쇠 아이콘이 보인다면,

    • 해당 사이트와의 통신이 SSL/TLS로 암호화되고 있다는 의미이다.

    2. SSL/TLS의 세 가지 핵심 기능

    HTTPS에서 사용하는 보안 기술은 SSL/TLS라고 부른다. 현재는 TLS라는 이름이 더 많이 쓰인다. TLS의 핵심 기능은 다음 세 가지로 요약된다.

    1. 암호화(Confidentiality)
      • 제3자가 패킷을 가로채도 내용이 암호화되어 있어 바로 읽을 수 없다.
      • 아이디, 비밀번호, 카드 정보 등 민감한 데이터가 보호된다.
    2. 무결성(Integrity)
      • 전송 중에 데이터가 중간에서 바뀌었는지 검사할 수 있다.
      • 누군가 패킷 내용을 조작하면, 수신 측에서 검증에 실패하여 이상을 감지할 수 있다.
    3. 인증(Authentication)
      • 브라우저가 접속한 서버가 정말 그 도메인의 주인이 맞는지 확인해 준다.
      • 이를 위해 디지털 인증서(SSL 인증서, TLS 인증서)와 공개키 기반 구조(PKI)를 사용한다.

    즉, HTTPS는 단순히 “내용만 암호화해서 보내는 것”이 아니라,

    • 암호화 + 무결성 + 서버 신원 확인을 함께 제공해,
    • 사용자가 피싱 사이트나 중간자 공격에 속을 가능성을 줄여 준다.

    3. HTTPS 연결 과정: 인증서와 키 교환의 흐름

    브라우저가 HTTPS 사이트에 접속할 때 내부적으로는 대략 다음과 같은 순서가 진행된다.

    1. HTTPS 접속 시도
      • 사용자가 https://example.com에 접속하면 브라우저는 서버에 SSL/TLS 연결을 요청한다.
    2. 서버 인증서 전달
      • 서버는 “이 도메인의 주인은 나다”라는 증명 역할을 하는 디지털 인증서(서버 인증서)를 브라우저에 보낸다.
      • 인증서 안에는 서버의 공개키, 도메인 이름, 발급 기관 정보, 유효 기간 등이 포함되어 있다.
    3. 브라우저의 인증서 검증
      • 브라우저는 다음 항목을 확인한다.
        • 이 인증서를 발급한 기관(CA)이 신뢰할 수 있는 곳인지
        • 인증서의 도메인 이름이 사용자가 접속한 주소와 일치하는지
        • 인증서 유효 기간이 현재 시점에 맞는지
        • 인증서가 위조되거나 변조되지 않았는지
      • 이상이 있으면 브라우저는 경고 화면을 띄워 사용자가 인지하도록 한다.
    4. 암호화 통신에 사용할 세션 키 교환
      • 인증서 검증이 끝나면, 브라우저와 서버는 실제 데이터 통신에 사용할 대칭키(세션 키)를 서로 안전하게 합의한다.
      • 이 과정에서 공개키 암호화가 사용되어, 중간에서 가로채더라도 세션 키를 알아내기 어렵게 만든다.
    5. 암호화된 HTTP 통신 시작
      • 세션 키가 공유되면, 이후부터는 HTTP 요청·응답이 모두 세션 키로 암호화되어 전송된다.
      • 사용자는 평소와 같은 방식으로 로그인, 결제, 글 작성 등을 하지만, 내용은 모두 암호화된 채로 네트워크를 오간다.

    브라우저가 서버 인증서를 검증하고 세션 키를 교환한 뒤 암호화된 HTTP 요청과 응답을 주고받는 SSL/TLS 핸드셰이크 과정을 단계별로 보여주는 다이어그램
    브라우저와 웹 서버 간 SSL/TLS 핸드셰이크와 HTTPS 통신 흐름

    4. 실생활에서 HTTP와 HTTPS를 구분할 때의 체크포인트

    일반 사용자는 프로토콜 내부 동작을 모두 이해할 필요는 없다. 다만 몇 가지 눈에 보이는 신호만 확인해도, 보안 수준을 어느 정도 판단할 수 있다.

    1. 주소창의 스킴(Scheme) 확인
      • http://인지 https://인지 확인한다.
      • 로그인, 결제, 개인정보 입력 페이지는 반드시 https://를 사용해야 한다.
    2. 자물쇠 아이콘과 인증서 정보 확인
      • 자물쇠 아이콘이 닫혀 있고, “보안 연결” 등의 문구가 표시되는지 확인한다.
      • 클릭해서 인증서 발급 기관, 도메인 이름, 유효 기간을 간단히 확인할 수도 있다.
    3. 브라우저의 경고 메시지 무시 금지
      • 브라우저가 “이 사이트의 보안 인증서에 문제가 있다”,
        “연결이 완전하지 않다” 같은 경고를 띄운다면,
        • 가능하면 그 사이트에서 로그인·결제 정보를 입력하지 않는 것이 안전하다.
    4. 공용 와이파이에서 HTTP 사이트 사용 자제
      • 카페, 공항, 호텔 등 개방된 와이파이에서는
        • HTTPS 사이트만 사용하고,
        • HTTP 사이트에서 로그인, 결제, 중요한 정보 입력은 피하는 것이 좋다.
    5. 사이트 운영자 관점의 체크포인트(간단 참고)
      • 사이트를 운영하는 입장이라면,
        • 신뢰할 수 있는 인증서 발급 기관에서 SSL/TLS 인증서를 발급받고,
        • 모든 HTTP 요청을 HTTPS로 자동 리다이렉트하게 설정하며,
        • 혼합 콘텐츠(HTTPS 페이지 안에 HTTP 이미지·스크립트 포함)를 제거하는 것이 중요하다.

    HTTP와 HTTPS를 알면 웹 보안의 기본이 보인다

    이 글에서는 HTTP와 HTTPS를 중심으로, 웹 브라우저가 웹사이트와 대화하는 규칙과 보안 구조를 살펴보았다. 핵심 내용을 정리하면 다음과 같다.

    1. HTTP는 웹 브라우저와 서버가 대화하는 기본 규칙이다.
      • 요청과 응답의 형식, 메서드, 상태 코드를 정의한다.
      • 하지만 기본 HTTP는 암호화가 없고, 서버 신원 확인도 하지 않는다.
    2. HTTPS는 HTTP 위에 SSL/TLS 보안 계층을 얹은 프로토콜이다.
      • 통신 내용을 암호화하여 제3자가 직접 내용을 읽지 못하게 하고,
      • 데이터가 중간에서 변조되었는지 확인하며,
      • 인증서를 통해 서버 신원을 검증한다.
    3. SSL/TLS는 암호화, 무결성, 인증이라는 세 가지 핵심 기능을 제공한다.
      • 인증서와 공개키 기반 구조(PKI)를 사용해 안전한 세션 키를 교환하고,
      • 이후 HTTP 데이터는 암호화된 채로 주고받는다.
    4. 일반 사용자는 주소창의 https://, 자물쇠 아이콘, 인증서 경고 여부를 확인하는 것만으로도 보안을 크게 향상시킬 수 있다.
      • 공용 와이파이에서는 특히 HTTPS 여부를 반드시 확인해야 한다.
    5. 사이트 운영자는 HTTPS를 기본값으로 설정해야 한다.
      • 인증서 발급, HTTP → HTTPS 리다이렉트, 혼합 콘텐츠 제거 등은
      • 오늘날 웹 서비스에서 필수적인 보안 기본 작업에 해당한다.

    이제 “HTTP와 HTTPS가 무엇이 다른가”, “왜 HTTPS가 중요하다고 하는가”라는 질문에 대해,

    • HTTP는 웹 대화의 형식을 정의하는 규칙이고,
    • HTTPS는 그 대화를 암호화하고 인증하는 안전한 통로 위에서 진행하는 방식이라는 설명을 할 수 있을 것이다.

    다음 단계에서 함께 살펴볼 만한 주제로는 예를 들어 다음과 같은 것이 있다.

    • “쿠키와 세션: 웹사이트가 로그인 상태를 기억하는 방법”
    • “TLS 버전과 현대 웹 보안: TLS 1.2, 1.3이 등장한 배경과 의미”

    이러한 주제를 이어서 학습하면, 전산학과 웹 개발에서 중요한 축인 웹 보안 구조와 인터넷 통신의 기초를 더 깊이 이해하는 데 도움이 될 것이다.