
HTTP method 는
client가
server의 resource에 대해
어떤 작업을 요청하는지를 나타냄.
대표적인 method는 다음과 같음.
| HTTP method | 의미 | 게시판 | 딥러닝 모델 서비스 |
GET |
조회 | 게시글 조회 | 저장된 추론 결과 조회 |
POST |
생성 또는 처리 요청 | 새 게시글 작성 | 이미지를 입력하여 추론 결과 생성 |
PUT |
전체 교체 | 게시글 전체 수정 | 추론 결과의 부가 정보 전체 교체 |
PATCH |
일부 수정 | 게시글 일부 수정 | 추론 결과의 일부 정보 수정 |
DELETE |
삭제 | 게시글 삭제 | 저장된 추론 결과 삭제 |
HEAD |
header 정보만 조회 | 게시글의 존재 여부나 수정 시각 확인 | 추론 결과의 존재 여부, 크기, 수정 시각 확인 |
HEAD
GET과 동일하게 resource의 정보를 요청하지만, response body는 받지 않고 header만 확인할 때 사용함.
- 추론 결과의 실제 내용은 받지 않고,
- 해당 resource의 존재 여부, 크기, 수정 시각, content type 등을 확인할 수 있음.
GET
GET은 server에 존재하는 resource를 조회할 때 사용함.
- 일반적으로 server의 상태를 변경하지 않음.
GET은 게시판에서 특정 게시글을 조회하는 경우에 사용됨:
GET /api/posts/101
- 101번 게시글의 제목, 본문, 작성자 등을 가져옴.
GET은 딥러닝 모델 서비스에서 저장된 추론 결과를 조회하는 경우 사용가능함:
GET /api/predictions/501
{
"prediction_id": 501,
"predicted_class": "precancer",
"confidence": 0.87
}
- 주의할 점은
GET은 새로운 추론을 실행하는 것이 아님. - 이미 생성된 추론 결과를 가져오는 것임.
POST
POST는 새로운 resource를 생성하거나 server에 새로운 처리를 요청할 때 사용함.
POST는 게시판에서 새 게시글을 작성하는 경우 사용됨:
POST /api/posts
Content-Type: application/json
{
"title": "HTTP method 질문",
"content": "POST는 언제 사용하는가?"
}
- 이 경우, server는 전달받은 내용을 이용하여 새로운 게시글을 생성함.
POST는 딥러닝 모델 서비스에서는 이미지를 전송하고, 고정된 모델로 추론을 수행하도록 요청하는데 사용됨:
POST /api/predictions
Content-Type: multipart/form-data
file: tongue_image.jpg
이 경우 server에서는 다음 과정이 수행됨.
이미지 수신
이미지 전처리
딥러닝 모델 추론
추론 결과 생성
결과 반환
응답 예:
{
"prediction_id": 501,
"predicted_class": "precancer",
"confidence": 0.87,
"probabilities": {
"cancer": 0.08,
"precancer": 0.87,
"benign": 0.04,
"normal": 0.01
}
}
즉, POST를 통해,
- 게시판에서는 새로운 게시글이 생성되고,
- 딥러닝 모델 서비스에서는 새로운 추론 결과가 생성됨.
PUT
PUT은 기존 resource의 전체 내용을 새로운 내용으로 교체할 때 사용함.
PUT은 게시판에서 게시글 전체를 수정하는 경우 사용됨:
PUT /api/posts/101
Content-Type: application/json
{
"title": "수정된 제목",
"content": "수정된 본문",
"is_public": true
}
- 101번 게시글의 기존 내용 전체를 새로운 내용으로 교체함.
또한 PUT은
- 딥러닝 모델 서비스에서는 추론 결과 자체를 수정하기보다,
- 추론 결과에 연결된 부가 정보(metadata)를 전체 교체하는 경우에 사용할 수 있음.
PUT /api/predictions/501/metadata
Content-Type: application/json
{
"image_name": "tongue_image.jpg",
"note": "추가 검토 필요",
"reviewed": true
}
- 기존 metadata 전체가 요청으로 전달한 내용으로 교체됨.
PATCH
PATCH는 기존 resource의 일부 정보만 수정할 때 사용함.
PATCH는 게시판에서 제목만 수정하는 경우 등에 주로 사용됨:
PATCH /api/posts/101
Content-Type: application/json
{
"title": "제목만 수정"
}
- 본문과 다른 정보는 그대로 유지됨.
PATCH는 딥러닝 모델 서비스에서 추론 결과의 확인 여부만 수정하는 경우 등에 사용가능:
PATCH /api/predictions/501
Content-Type: application/json
{
"reviewed": true
}
- 추론 class와 probability는 그대로 두고,
reviewed값만 변경함.
참고로, PUT과 PATCH의 차이는 다음과 같음.
PUT: resource 전체 교체PATCH: resource 일부 수정
DELETE
DELETE는 server에 저장된 resource를 삭제할 때 사용함.
DELETE는 게시판에서 게시글을 삭제하는 경우등에 사용됨:
DELETE /api/posts/101
또한 DELETE는 딥러닝 모델 서비스에서 저장된 추론 결과를 삭제하는 경우 사용됨:
DELETE /api/predictions/501
- 삭제가 성공하고 반환할 내용이 없는 경우에는
- 다음과 같은 status code 만을 이용할 수도 있음.
204 No Content
정리
GET: server에 저장된 resource를 조회할 때 사용함.- 게시글 조회
- 저장된 추론 결과 조회
POST: 새로운 resource를 생성하거나 server에 처리를 요청할 때 사용함.- 새 게시글 생성
- 이미지를 입력하여 새로운 추론 결과 생성
PUT: 기존 resource 전체를 새로운 내용으로 교체할 때 사용함.- 게시글 전체 교체
- 추론 결과의 부가 정보 전체 교체
PATCH: 기존 resource의 일부 내용만 수정할 때 사용함.- 게시글 일부 수정
- 추론 결과의 일부 정보 수정
DELETE: server에 저장된 resource를 삭제할 때 사용함.- 게시글 삭제
- 저장된 추론 결과 삭제
같이 보면 좋은 자료들
https://dsaint31.me/mkdocs_site/CE/ch06/ce06_2_03_Internet/#protocol
BME
DNS Firewall HTTP Internet TCP/IP WWW Internet Internet은 Network 의 Network를 가리키며, 기존의 WAN들을 전세계적으로 연결한 것이 Internet임. Internet is not actually a physical network; it’s a set of layered protocols. 계층화
dsaint31.me
'WebApp' 카테고리의 다른 글
| curl을 이용한 HTTP method 실습 (0) | 2026.07.30 |
|---|---|
| REST API (0) | 2026.07.28 |
| [HTTPS] certbot을 통한 nginx에서 HTTPS 설정. (0) | 2023.09.10 |
| [HTTPS] Certification 갱신 : certbot renew (0) | 2023.09.10 |
| [HTTPS] certbot 사용법 : chain 삭제 (0) | 2023.09.10 |