-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #55 from cs-yum/jeehoon
docs: 네트워크 HTTP Method 글 발행
- Loading branch information
Showing
9 changed files
with
106 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
> HTTP(Hypertext Transfer Protocol)는 TCP 기반의 서버 - 클라이언트 사이 메시지 교환 프로토콜을 의미한다. | ||
<center> | ||
<img src="/img/네트워크/5-1-0.png" width="200" height="200" alt="Request 메시지" /> | ||
</center> | ||
|
||
## 🧑🏻💻 HTTP 메시지와 구조 | ||
--- | ||
|
||
### ✅ Request 메시지 | ||
> 클라이언트에서 서버로의 메시지로, 헤더(메서드 + URI + 프로토콜 버전), 공백라인, 바디로 구성되어있다. | ||
<center> | ||
<img src="/img/네트워크/5-1-1.png" width="350" height="400" alt="Request 메시지" /> | ||
</center> | ||
|
||
### ✅ Response 메시지 | ||
> 서버에서 클라이언트로의 메시지로, 헤더(프로토콜 버전 + 상태코드 + 상태코드 설명), 공백라인, 바디로 구성되어있다. | ||
<center> | ||
<img src="/img/네트워크/5-1-2.png" width="350" height="400" alt="Request 메시지" /> | ||
</center> |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
> HTTP Method는 리소스(URL 검색 혹은 서버로부터 받아온 결과물)를 다루는 방식을 뜻한다. | ||
## 🧑🏻💻 HTTP Method 종류 | ||
--- | ||
|
||
> GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH | ||
### ✅ GET | ||
> 리소스를 조회한다. | ||
- 리소스의 상태나 데이터를 요청하며, 요청의 본문(body)을 가질 수 없다. | ||
|
||
### ✅ HEAD | ||
> 실제 리소스를 반환하지 않고 GET 메서드로 요청했을 때 응답으로 오는 헤더 부분만 반환한다. | ||
- 주로 리소스의 메타데이터나 헤더 정보를 확인할 때 사용된다. | ||
|
||
### ✅ POST | ||
> 새로운 리소스를 등록한다. | ||
### ✅ PUT | ||
> 대상 리소스가 없다면 리소스를 생성하고, 있다면 수정한다. 즉 기존 리소스를 완전히 대체한다. | ||
### ✅ DELETE | ||
> 리소스를 삭제한다. | ||
### ✅ CONNECT | ||
> 요청한 리소스에 대해 목적지 서버로 양방향 연결을 맺도록 요청한다. | ||
- 주로 프락시 서버와 사용된다. | ||
|
||
### ✅ OPTIONS | ||
> 서버가 지원하는 메서드나 리소스의 특성을 조회한다. | ||
- 서버가 지원하는 메서드나 기능을 확인하는 데 사용된다. | ||
|
||
### ✅ TRACE | ||
> 서버에게 현재 요청 메시지를 반환한다. | ||
- Client - Server Side 간 Loop back Test 를 진행할 수 있게 도와준다. | ||
|
||
- 주로 디버깅과 진단 목적으로 사용된다. | ||
|
||
### ✅ PATCH | ||
> 리소스 일부를 수정한다. | ||
- 리소스의 일부만 수정하고 나머지 부분은 유지한다. | ||
|
||
## 🧑🏻💻 HTTP Method 특성 | ||
--- | ||
|
||
<center> | ||
<img src="/img/네트워크/5-2-1.png" width="350" height="400" alt="Request 메시지" /> | ||
</center> | ||
|
||
### ✅ 안정성 (Safe) | ||
- 서버 상태를 변경하지 않는 특성이다. 즉 서버 측 데이터를 변경하지 않는다. | ||
|
||
### ✅ 멱등성 (Idempotent) | ||
- 동일한 요청을 여러 번 실행하더라도 상태가 변하지 않고 동일한 결과를 얻을 수 있는 특성이다. | ||
|
||
- POST 메서드는 주로 새로운 리소스를 생성하는 데 사용된다. POST 요청을 여러 번 보내면 각각 다른 리소스 인스턴스(다른 게시물, 다른 주문)가 생성되기 때문에 POST는 멱등성을 가지지 않는다. | ||
|
||
- PUT 메서드는 기존 리소스를 항상 대체하기 때문에 동일한 결과를 얻을 수 있다. (값이 어떻게 업데이트되었든 간에, 항상 새로운 값으로 대체된다는 점에서 멱등이다.) | ||
|
||
- PATCH 메서드는 동일한 요청을 여러 번 실행할 때, 리소스의 상태가 변경된 경우에 대한 요청을 계속 하게 되는 것이므로 결과가 달라질 수 있고 멱등성을 보장하지 않는다. (값이 어떻게 업데이트되는지에 따라 새로운 값을 제공한다.) | ||
|
||
### ✅ 캐시 가능성 (Cacheable) | ||
- 응답을 캐시할 수 있는 특성이다. | ||
|
||
- GET 메서드는 리소스를 읽기 전용으로 보기 때문에 반복 요청에서 동일한 응답을 캐시하여 재사용할 수 있다. | ||
|
||
- HTTP 스팩에서는 POST 메서드에 대한 몇 가지 캐시 지시어를 정의하고 있지만, 이러한 캐시 기능을 지원하는 경우는 드물다. |
Empty file.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.