[JS] http 와 https

Yeong·2024년 10월 21일

HTTP

HTTP (Hypertext Transfer Protocol) 은 클라이언트와 서버 간에 데이터를 주고받는 데 사용되는 텍스트 기반의 프로토콜입니다.
웹 브라우저와 웹 서버 간에 문서를 전송하는 데 주로 사용되며, HTML 문서, 이미지, 스크립트, 스타일 시트 등의 웹 페이지 자원을 전송하는 데 적합합니다.

📎 주요 특징

  1. 클라이언트 (일반적으로 웹 브라우저)가 서버에 요청을 보냅니다. 이 요청은 HTTP 메서드(GET, POST, 등)와 함께 원하는 자원의 경로(Uniform Resource Identifier, URI)를 포함합니다.

  2. 서버는 클라이언트의 요청을 받고, 해당 자원에 대한 응답을 생성합니다. 응답은 상태 코드, 헤더, 본문 등으로 구성됩니다.

  3. 서버의 응답이 클라이언트에게 전송됩니다. 이때, 전송에는 TCP/IP 프로토콜을 사용합니다. TCP/IP는 신뢰성 있는 데이터 전송을 제공합니다.

  1. 클라이언트는 서버로부터 받은 데이터를 해석하여 웹 페이지를 렌더링합니다. 이 과정에서 HTML, CSS, JavaScript 등의 웹 페이지 구성 요소들이 사용됩니다.

🧚🏻‍♂️ HTTP 메서드 정리

HTTP 메서드는 클라이언트가 서버에게 어떤 동작을 원하는지를 나타내는 수단입니다.

아래는 주로 사용되는 메서드들 입니다 !

  • GET: 리소스를 요청하고 서버에서 해당 리소스를 반환합니다. 주로 정보를 요청할 때 사용합니다.
  • POST: 리소스에 데이터를 제출하여 리소스를 생성하거나 업데이트합니다. 주로 양식 제출 등에 사용됩니다.
  • PUT: 리소스를 업데이트 또는 생성합니다. 요청된 리소스가 이미 있으면 업데이트하고, 없으면 새로 생성합니다.
  • DELETE: 지정된 리소스를 삭제합니다.

HTTPS

HTTPS ( Hypertext Transfer Protocol Secure ) 는 HTTP의 보안 강화 버전으로, 데이터를 안전하게 전송하기 위해 SSL(보안 소켓 레이어) 또는 최신 버전인 TLS(전송 계층 보안) 프로토콜을 사용하는 프로토콜입니다.

SSL (Secure Sockets Layer)

초기에 사용된 보안 프로토콜로, 웹에서 데이터를 암호화하고 안전하게 전송하기 위한 기술이며 서버 및 클라이언트 간의 통신을 보호하기 위해 사용되며, 공개 키 및 개인 키를 이용한 암호화 및 복호화를 통해 보안을 제공해줍니다.

다음으로 TLS(Transport Layer Security)

SSL의 후속 버전으로, 현재 주로 사용되는 프로토콜입니다.
더 강력한 보안 및 암호화 기술을 도입하고, SSL의 취약점을 보완하여 보다 안전한 통신을 제공합니다.

간단하게 설명드리자면 HTTPS의 주요 동작 방식은 클라이언트와 서버 간의 안전한 통신을 위해 인증, 암호화, 및 데이터 무결성을 보장하는 단계적인 과정을 포함합니다. 이러한 접근은 중요한 정보를 주고받는 웹 트래픽에서 보안을 강화합니다. 자세한 설명은 다음과 같습니다.

우선, HTTPS는 클라이언트가 안전한 연결을 확립하고자 서버에 HTTPS로 연결을 요청합니다.
또는 서버는 클라이언트에게 인증서를 제공하고, 이 인증서는 서버의 공개 키와 서버의 신원 정보를 포함합니다.
클라이언트는 이 인증서를 사용하여 서버의 신원을 확인하고, 신뢰할 수 있는 기관(Certificate Authority, CA)에 의해 서명된 유효한 인증서인지 확인합니다.

🧚🏻‍♂️ 주요 특징

추가적으로 클라이언트와 서버는 SSL/TLS 핸드셰이크를 통해 통신에 사용할 암호화 알고리즘, 세션 키, 및 기타 보안 매개변수를 협상합니다. 이 단계에서 양측은 서로에 대한 안전한 터널을 설정합니다. 클라이언트와 서버는 핸드셰이크 과정에서 협상한 세션 키를 사용하여 통신할 수 있도록 준비됩니다. 이 세션 키는 대칭형 암호화에 사용되어 데이터의 기밀성과 무결성을 보장합니다.

HTTPS 데이터 암호화 및 전송 기능으로 세션 키를 사용하여 데이터는 암호화되어 전송됩니다. 클라이언트와 서버 간의 모든 통신은 이러한 암호화된 터널을 통해 이루어집니다. 클라이언트와 서버는 받은 암호화된 데이터를 세션 키를 사용하여 해독하고, 원본 데이터로 복원합니다. 암호화된 데이터를 전송하는 동안 데이터의 무결성이 보장되므로, 중간에서의 감청이나 조작을 방지합니다.

세션이 끝나면 안전한 연결이 종료되고, 이를 통해 사용자와 서버 간의 데이터 전송이 안전하게 이루어집니다.


HTTP

비안전한 프로토콜로, 데이터는 암호화되지 않고 평문으로 전송됩니다. 중간에서의 감청이나 데이터 변조에 취약합니다. 예를 들어, 사용자의 로그인 정보나 결제 정보가 중간에서 가로채질 우려가 있습니다.

HTTPS

보안 강화를 위해 SSL/TLS 프로토콜을 사용하여 데이터를 암호화하고 안전한 터널을 형성합니다. 중간에서의 감청을 방지하고 데이터의 무결성을 보장합니다. 사용자의 로그인 정보 및 결제 정보가 암호화되어 안전하게 전송됩니다.

0개의 댓글