CS 공부/네트워크

[네트워크] HTTP & HTTPS

winterlove 2024. 10. 3. 23:44
프로토콜이란?
컴퓨터 내부, 사이의 데이터 교환 방식을 정의하는 규칙이나 표준
서로 다른 시스템, 장치들이 일관되게 통신할 수 있는 규칙을 정의해 데이터 형식, 전송 절차, 에러 처리 등 세부 사항을 결정한다. 
즉, 의사소통을 원활하게 해주는 규칙!

예시
1. HTTP : 웹 데이터를 주고받을 때 사용
2. FTP : 파일을 전송
3. TCP/IP : 인터넷에서 데이터를 주고받기 위한 기본 프로토콜 스택
4. SMTP : 이메일 전송을 위한 프로토콜

 

1. HTTP(HyperText Transfer Protocol)란?

  • 텍스트 기반의 통신 규약으로 인터넷에서 데이터를 주고받을 수 있는 프로토콜
  • 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 동작. 상태를 가지지 않는 프로토콜이며 Method, Path, Version, Headers, Body 등으로 구성
  • 비연결성, 비상태성이 특징으로 한 번의 요청-응답 후 연결을 종료하는 구조
  • 클라이언트가 서버에 데이터를 요청하면 서버는 데이터를 전송하고 연결 해지
  • 주 포트는 80
  • HTTP요청 구조는 GET, POST, PUT, DELETE 등 메서드, 헤더, 바디가 존재
    • GET : 자료 요청
    • POST : 자료 생성을 요청
    • PUT : 자료의 수정 요청
    • DELETE : 자료의 삭제 요청
공개키 : 모두에게 공개 가능한 키
개인키 : 나만 갖고 있는 키

공개키 암호화 시 개인키로만 복호화 가능, 나만 데이터를 볼 수 있음
개인키 암호화 시 공개키로만 복호화 가능, 공개키는 모두에게 공개되어 내가 인증한 정보임을 알려 신뢰성을 보장받을 수 있음

2. HTTP(HyperText Transfer Protocol Secure)란?

  • HTTP + 보안(SSL/TSL) 프로토콜
  • SSL을 이용해서 HTTP의 보안상 문제를 해결했으며 서버-브라우저 사이에 안전하게 암호화 된 연결 가
  • 암호화된 통신을 제공해 데이터를 안전하게 전송 가능
  • 데이터 무결성과 인증을 보장
  • 중간자 공격(Man-in-the-Middel Attack) 방지 가능
  • 주 포트는 443
  • 암호화 방식 
    • 대칭키
      • 클라이언트-서버가 동일 키 사용해 암호화-복호화 진행
      • 키 노출 시 위험할 수 있으나 연산 속도 우수
    • 비대칭키
      • 1개의 쌍으로 구성된 공개키-개인키 이용하여 암호화-복호화 진행
      • 키가 노출되어도 비교적 안전하나 연산 속도가 느린 단점이 있음

3. HTTP와 HTTPS 차이점은?

  • 속도 : HTTPS는 암호화 인증 과정을 거치기에 조금 느릴 수 있으나 큰 차이는 없음
  • 보안 : HTTPS는 데이터를 암호화하여 보호하며 특히 개인정보, 금융 데이터를 주고받을 때 필수적이다.

4. SSL/TSL 작동 원리

  • SSL(Secure Socket Layer)과 TLS(Transport Layer Security)는 HTTPS 통신을 위한 암호화 기술이다. TLS는 SSL의 최신버전
  • 대칭키, 비대칭키 암호화를 조합하여 클라이언트-서버 간 데이터를 안전하게 주고받는다.