1. HTTP와 HTTPS 차이
구분 | HTTP | HTTPS |
프로토콜 | 하이퍼텍스트 전송 프로토콜 | 하이퍼텍스트 전송 프로토콜 + SSL/TLS 암호화 |
보안 | 데이터 평문 전송 (취약) | 데이터 암호화 전송 (안전) |
포트 번호 | 80번 포트 사용 | 443번 포트 사용 |
인증서 | 없음 | SSL/TLS 인증서 필요 |
속도 | 빠름 | 암호화로 인해 약간 느림 |
사용 사례 | 공개된 웹 페이지 | 민감 정보 교환 (로그인, 결제 등) |
HTTPS는 TLS(전송 계층 보안)를 통해 데이터를 암호화하여 안전하게 통신함
2. HTTP 상태 코드
- 1xx (정보): 요청을 받고 처리 중
- 2xx (성공): 요청 성공
- 200 OK: 요청이 성공적으로 처리됨.
- 201 Created: 요청이 성공적으로 처리되었고 리소스가 생성
- 3xx (리다이렉션): 다른 리소스로 이동
- 301 Moved Permanently: 요청한 리소스가 영구적으로 이동
- 302 Found: 리소스가 일시적으로 이동
- 4xx (클라이언트 오류): 요청에 문제가 있음
- 400 Bad Request: 잘못된 요청
- 401 Unauthorized: 인증 필요
- 403 Forbidden: 접근 금지
- 404 Not Found: 요청한 리소스를 찾을 수 없음
- 5xx (서버 오류): 서버가 요청을 처리할 수 없음
- 500 Internal Server Error: 서버 내부 오류
- 502 Bad Gateway: 게이트웨이 오류
- 503 Service Unavailable: 서버가 현재 요청을 처리할 수 없음
상태 코드를 통해 클라이언트와 서버 간의 요청 및 응답 상태를 파악
3. HTTP 메소드
- GET: 리소스를 조회할 때 사용
- POST: 새로운 리소스를 생성할 때 사용
- PUT: 기존 리소스를 수정할 때 사용
- DELETE: 리소스를 삭제할 때 사용
- PATCH: 리소스의 일부만 수정할 때 사용
3-1. PUT과 PATCH 차이와 예
구분 | PUT | PATCH |
목적 | 리소스를 전체 수정 | 리소스의 일부만 수정 |
작업 방식 | 전체 리소스를 새 데이터로 교체 | 특정 필드만 수정 |
리소스 존재 여부 | 리소스가 없다면 생성될 수 있음 | 리소스가 이미 존재해야 함 |
데이터 전송 | 전체 리소스를 포함한 요청 | 변경할 필드만 포함한 요청 |
예시 | 사용자 전체 정보 수정 (이름, 이메일, 주소 등) | 사용자 이메일만 수정 |
HTTP Idempotent (멱등성) | Yes (여러 번 요청해도 결과 동일) | Yes (여러 번 요청해도 결과 동일) |
1. PUT
PUT /users/123
Content-Type: application/json
{
"name": "John Doe",
"email": "john@example.com",
"address": "123 Main St"
}
- PUT은 users/123 리소스를 전체 수정, 기존 값이 없으면 새로 생성될 수 있음.
2. PATCH
PATCH /users/123
Content-Type: application/json
{
"email": "john_updated@example.com"
}
- PATCH는 users/123 리소스의 email 필드만 일부만 수정.
4. 쿠키와 세션의 차이
구분 | 쿠키 | 세션 |
저장 위치 | 클라이언트 브라우저 | 서버 |
보안성 | 낮음 (클라이언트 저장) | 높음 (서버 저장) |
용량 제한 | 4KB 제한 | 서버 메모리 한계에 따름 |
사용 목적 | 사용자 정보 저장 (자동 로그인 등) | 사용자 인증 및 상태 유지 |
유효 기간 | 설정된 시간까지 유지 | 브라우저 종료 시 삭제(기본) |
쿠키는 클라이언트에 저장되며 상태를 유지, 세션은 서버에서 관리.
5. 개념 요약
HTTP는 평문으로 데이터를 전송
HTTPS는 TLS를 통해 안전하게 암호화
HTTP 상태 코드는 요청/응답의 상태를 나타냄
HTTP 메소드는 특정 동작(GET, POST, PUT, DELETE 등)을 서버에 요청
쿠키는 클라이언트에서 데이터를 저장, 세션은 서버에서 상태를 관리함