CS
[HTTP - 1 ] HTTP란? : PUT과 PATCH의 역할과 차이점
옥돔이와 연근이
2025. 2. 20. 13:56
반응형
↘️ 관련 글 보기
[HTTP - 2 ] URL 입력에서 웹 페이지 출력까지: HTTP 요청과 응답 과정 이해하기
[HTTP - 3 ] HTTP의 특징:쿠키(Cookie)와 세션(Session)의 차이점
📍 HTTP란?
HTTP(HyperText Transfer Protocol)는 웹 상에서 정보를 전송하기 위한 통신 프로토콜로, HTML 같은 문서를 전송하는 데 사용된다. HTTP는 클라이언트가 요청(request)을 서버에 보내면, 서버는 응답(response)을 클라이언트에게 전달하는 구조이다.
▹ HTTP 메시지 구조
- Request Message:
- Start Line: 요청의 시작을 알리고 메소드, URL, HTTP 버전 정보를 포함.
- Header: 요청과 관련된 추가 정보(예: User-Agent, Host 등)를 전달.
- Body: 요청과 함께 전송되는 데이터(선택적).
- Response Message:
- Status Line: 응답의 상태를 나타내는 정보(예: 200 OK, 404 Not Found 등)를 포함.
- Header: 응답과 관련된 부가 정보를 전달.
- Body: 응답 데이터(예: HTML, JSON 등).
▹ HTTP 특징
- Connectionless:
- 클라이언트와 서버가 요청과 응답이 끝난 후 연결을 끊는 방식.
- 동시 접속 수를 줄여 많은 요청을 처리 가능.
- Stateless:
- 서버가 클라이언트의 이전 상태를 기억하지 않음.
- 로그인 상태 등 클라이언트 정보를 유지하기 위해 Cookie, Session, JWT 등이 사용됨.
▹ HTTPS란?
HTTP에 암호화를 추가한 프로토콜로, SSL/TLS를 통해 데이터를 안전하게 전송한다.
📍 HTTP Request Method
HTTP에서 클라이언트가 서버와 통신하는 방식은 여러 메소드를 통해 이루어진다. 주요 메소드는 다음과 같다.
1. GET
- 리소스를 요청하는 메소드.
- 데이터가 URL의 Query String 형태로 포함되어 전송됨.
- 특징:
- 브라우저 히스토리에 남음.
- 캐시가 가능.
- 민감한 정보 전송에는 적합하지 않음.
2. POST
- 데이터를 서버에 전달하고 처리 요청을 하는 메소드.
- 데이터가 HTTP Body에 포함되어 전송됨.
- 특징:
- 브라우저 히스토리에 남지 않음.
- 캐시 불가능.
- 보안에 유리.
3. PUT
- 리소스를 대체하거나 리소스가 없으면 새로 생성하는 메소드.
4. PATCH
- 리소스의 일부만 수정하는 메소드.
💡 GET vs POST
구분 | GET | POST |
역할 | 리소스 요청 | 데이터 처리 요청 |
데이터 전송 | URL의 Query String | HTTP Body |
보안 | 낮음 (URL에 데이터 노출) | 높음 (Body에 데이터 포함) |
캐시 | 가능 | 불가능 |
히스토리 | 브라우저 히스토리에 기록됨 | 기록되지 않음 |
💡 PUT vs PATCH
구분 | PUT | PATCH |
역할 | 리소스 전체를 대체 | 리소스의 일부를 수정 |
특징 | 리소스가 없으면 새로 생성 | 기존 리소스가 반드시 존재해야 함 |
💡예시 코드
► PUT의 경우, name(Noname -> Nossi)을 변경하면 리소스를 새로 생성
// Server resource
// Before
user/10
{
name: Noname,
language: C++
}
// Request
PUT user/10
{
name: Nossi,
}
// After
user/10
{
name: Nossi,
}
► PATCH의 경우, name(Noname -> Nossi)을 변경하면 기존 리소스에서 이름만 변경
//Server resource
//Before
user/10
{
name: Noname,
language: C++
}
// Request
PATCH user/10
{
name: Nossi
}
// After
PATCH user/10
{
name: Nossi,
language: C++
}
반응형