본문 바로가기
Study

HTTP란?

by 이매➰ 2024. 10. 6.

HTTP란?

  • 웹에서 데이터를 주고받기 위한 통신 프로토콜
  • 웹 브라우저와 서버 간의 통신을 가능하게 해 주는 기본적인 방식
  • 클라이언트(주로 웹 브라우저)가 서버에 요청을 보내고, 서버가 그 요청에 대한 응답을 보내는 방식으로 작동

HTTP의 주요 특징

  • 클라이언트-서버 구조
    클라이언트(사용자가 웹사이트를 방문할 때 사용하는 브라우저)가 서버에 요청을 보내면, 서버(웹사이트)는 요청에 응답한다. 예를 들어, 사용자가 웹사이트를 열면 클라이언트는 서버에 HTML, CSS, 이미지 등을 요청하고, 서버는 그 데이터를 반환한다
  • 무상태(Stateless) 프로토콜
    이전 요청에 대한 정보를 서버가 유지하지 않으며, 각 요청은 독립적으로 처리된다. 이로 인해 매번 요청 시 필요한 정보를 함께 보내야 한다
  • HTTP 메서드  HTTP는 다양한 요청 메서드를 지원한다
    • GET: 서버에서 데이터를 가져오는 요청 (예: 웹 페이지를 요청)
    • POST: 서버에 데이터를 보내는 요청 (예: 폼 제출)
    • PUT: 서버에 데이터를 전체 업데이트하는 요청
    • PATCH: 서버의 데이터를 일부 업데이트하는 요청
    • DELETE: 서버에서 데이터를 삭제하는 요청
  • HTTP 상태 코드  서버는 요청에 대한 상태를 나타내는 상태 코드를 응답한다
    예시)
    • 200 OK: 요청이 성공적으로 처리되었음을 의미
    • 404 Not Found: 요청한 리소스를 찾을 수 없음을 의미
    • 500 Internal Server Error: 서버에서 오류가 발생했음을 의미

HTTPS란? HTTP는 데이터를 암호화하지 않기 때문에 민감한 정보를 주고받을 때 보안에 취약하다

HTTPS(Hypertext Transfer Protocol Secure)는 SSL/TLS 암호화를 통해 데이터를 안전하게  주고 받을 수 있게 한다

 

SSL : 인터넷에서 데이터가 안전하게 전송될 수 있도록 해주는 초기의 암호화 프로토콜

TLS : TLS는 SSL의 후속 버전. 더 향상된 보안을 제공하는 프로토콜. 현재 대부분의 웹사이트는 SSL 대신 TLS를 사용하고 있으며 SSL은 더 이상 사용되지 않고, TLS가 표준으로 자리 잡았다

 

SSL/TLS 암호화의 작동 방식

 

  • 핸드셰이크 과정: 클라이언트와 서버가 SSL/TLS 연결을 설정하기 위해 서로 인증하고, 암호화 키를 교환한다
    이 과정에서 대칭키 암호화와 비대칭키 암호화를 모두 사용한다
  • 서버 인증서: 서버는 SSL/TLS 인증서를 클라이언트에게 보내 서버의 신뢰성을 증명한다
    이 인증서는 서버가 신뢰할 수 있는 사이트라는 것을 보증한다
  • 세션 키 생성: 클라이언트와 서버는 서로의 공개키(비대칭키의 공개키 / 개인키 중)를 사용해 안전하게 세션 키를 생성한다
    • 세션 키 : 암호화된 통신 세션에서 데이터를 암호화하는 데 사용되는 일회성 대칭 키
      대칭키 방식은 매우 빠르기 때문에 데이터를 안전하고 효율적으로 암호화한다
  • 데이터 암호화: 세션이 설정된 후 클라이언트와 서버 간에 주고받는 모든 데이터는 이 세션 키로 암호화되어, 네트워크 상에서 가로채더라도 해독할 수 없도록 보호된ㄷ