Tan Kim

HTTP / HTTPS

HTTP vs HTTPS

항목 HTTP HTTPS
포트 80 443
암호화 없음 TLS로 암호화
인증서 불필요 SSL/TLS 인증서 필요
속도 빠름 미세하게 느림 (핸드셰이크)
SEO 불리 유리

HTTP 메서드

메서드 용도 멱등성
GET 리소스 조회 O
POST 리소스 생성 X
PUT 리소스 전체 수정 O
PATCH 리소스 부분 수정 X
DELETE 리소스 삭제 O

HTTP 상태 코드

범위 의미 주요 코드
2xx 성공 200 OK, 201 Created, 204 No Content
3xx 리다이렉트 301 Moved, 302 Found, 304 Not Modified
4xx 클라이언트 오류 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found, 409 Conflict, 422 Unprocessable
5xx 서버 오류 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

HTTP 헤더

요청 헤더

헤더 설명
Authorization 인증 토큰 (Bearer <token>)
Content-Type 요청 바디 타입 (application/json)
Accept 응답 받을 타입
Cookie 쿠키 전송
Origin 요청 출처 (CORS)

응답 헤더

헤더 설명
Content-Type 응답 바디 타입
Set-Cookie 쿠키 설정
Access-Control-Allow-Origin CORS 허용 출처
Cache-Control 캐싱 정책
Location 리다이렉트 대상 URL

CORS

브라우저가 다른 출처의 리소스 요청을 차단하는 보안 정책.

출처(Origin) = 프로토콜 + 도메인 + 포트
https://api.example.com:443 ≠ https://example.com:443  → 다른 출처

서버 설정 (Node.js/Express)

app.use((req, res, next) => {
  res.setHeader('Access-Control-Allow-Origin', 'https://example.com')
  res.setHeader('Access-Control-Allow-Methods', 'GET,POST,PUT,DELETE')
  res.setHeader('Access-Control-Allow-Headers', 'Content-Type,Authorization')
  next()
})

HTTP 버전 비교

항목 HTTP/1.1 HTTP/2 HTTP/3
프로토콜 TCP TCP QUIC (UDP 기반)
멀티플렉싱 X O O
헤더 압축 X HPACK QPACK
연결 수 도메인당 6개 1개 1개
기본 암호화 선택 사실상 필수 필수

메모