[1주차 TIL] KnockOn Bootcamp HTTP/HTTPS

2024. 12. 6. 05:46KnockOn Bootcamp (녹온 부트캠프 3기)

1. HTTP란?

  • HTTP (HyperText Transfer Protocol):
    • 클라이언트와 서버 간 데이터를 주고받기 위한 프로토콜.
    • 무상태(stateless) 프로토콜로, 각 요청이 독립적으로 처리됨.
    • 주로 웹 브라우저와 웹 서버 간의 통신에 사용.

2. HTTP와 HTTPS

  • HTTP:
    • 평문(Plain Text) 통신, 보안 취약.
  • HTTPS (HTTP Secure):
    • HTTP에 SSL/TLS 암호화 적용.
    • 데이터를 암호화하여 보안을 강화.
    • 장점:
      • 데이터 도청 방지.
      • 데이터 변조 방지.
      • 사용자의 신뢰도 향상.

3. HTTP 헤더와 바디 구조

  • HTTP 요청/응답 구조:
    1. 시작줄(Start Line): 요청 메서드(GET, POST 등)와 응답 상태코드(200, 404 등) 포함.
    2. 헤더(Header): 메타데이터(클라이언트 정보, 콘텐츠 유형, 인증 정보 등) 포함.
      • 예:
        • Content-Type: application/json
        • Authorization: Bearer <token>
    3. 바디(Body): 요청/응답의 실제 데이터.
      • GET 요청에는 일반적으로 바디가 없음.

4. HTTP 메서드

  • 주요 메서드:
    1. GET: 데이터 요청 (읽기 전용).
    2. POST: 데이터 생성/전송.
    3. PUT: 데이터 전체 수정.
    4. PATCH: 데이터 일부 수정.
    5. DELETE: 데이터 삭제.
  • 기타 메서드:
    • OPTIONS: 지원 가능한 메서드 확인.
    • HEAD: 헤더만 요청.

5. HTTP 상태코드

  • 1xx (정보): 요청 진행 중.
    • 100 Continue
  • 2xx (성공): 요청 성공.
    • 200 OK: 요청 성공.
    • 201 Created: 새 데이터 생성 성공.
  • 3xx (리다이렉션): 요청 리소스 이동.
    • 301 Moved Permanently: 영구 이동.
    • 302 Found: 임시 이동.
  • 4xx (클라이언트 오류): 클라이언트 잘못된 요청.
    • 400 Bad Request: 잘못된 요청.
    • 401 Unauthorized: 인증 필요.
    • 404 Not Found: 리소스 없음.
  • 5xx (서버 오류): 서버 처리 실패.
    • 500 Internal Server Error: 서버 오류.
    • 503 Service Unavailable: 서비스 이용 불가.

6. SSL 인증서

  • SSL (Secure Sockets Layer):
    • HTTPS에서 사용되는 암호화 기술.
    • **TLS (Transport Layer Security)**로 발전.
  • SSL 인증서 역할:
    • 데이터 암호화.
    • 서버의 신뢰성 확인.
    • 예: Let’s Encrypt, DigiCert.
  • 구현 과정:
    1. 클라이언트가 서버에 연결 요청.
    2. 서버가 SSL 인증서를 제공.
    3. 클라이언트가 인증서를 검증.
    4. 세션 키를 생성하여 안전한 통신 시작.