02.Method
HTTP Method
HTTP ๋ฉ์๋
GET : ๋ฆฌ์์ค ์กฐํ
POST : ์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ(๋ฑ๋ก)
PUT : ๋ฆฌ์์ค ๋์ฒด, ์์ผ๋ฉด ์์ฑ
PATCH : ๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
DELETE : ๋ฆฌ์์ค ์ญ์
API URI ์ค๊ณ
์ข์ URI ์ค๊ณ๋ ๋ฆฌ์์ค ์๋ณ์ด ์ค์
ํ์ = ๋ฆฌ์์ค
ํ์ ๋ชฉ๋ก ์กฐํ /members
ํ์ ์กฐํ /members/{id}
GET
ํ์ ๋ฑ๋ก /members/{id}
POST
ํ์ ์์ /members/{id}
PUT
ํ์ ์ญ์ /members/{id}
DELETE
๋ฆฌ์์ค(ํ์)์ ํ์(์กฐํ, ๋ฑ๋ก, ์ญ์ , ๋ณ๊ฒฝ)๋ฅผ ๋ถ๋ฆฌ
URI๋ ๋ฆฌ์์ค๋ง ์๋ณ
GET
GET
๋ฆฌ์์ค ์กฐํ
์ ๋ฌ ๋ฐ์ดํฐ๋ query parameter OR query string ์ ํตํด ์ ๋ฌ
POST
POST
์ ๋ฆฌ์์ค ์์ฑ(๋ฑ๋ก)
์์ฒญ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
ํ๋ก์ธ์ค ์ฒ๋ฆฌ
์ปจํธ๋กค URI
massage body๋ฅผ ํตํด ์๋ฒ๋ก ์์ฒญ ๋ฐ์ดํฐ ์ ๋ฌ
PUT
PUT
๋ฆฌ์์ค๊ฐ ์์ผ๋ฉด ๋์ฒด, ์์ผ๋ฉด ์์ฑ (๋ฎ์ด์ฐ๊ธฐ)
ํด๋ผ์ด์ธํธ๊ฐ ๋ฆฌ์์ค ์์น๋ฅผ ์๊ณ URI ์ง์ (POST์์ ์ฐจ์ด)
PUT /members/100 HTTP/1.1
POST /members HTTP/1.1
PATCH
PATCH
๋ฆฌ์์ค ๋ถ๋ถ ๋ณ๊ฒฝ
PATCH /members/100 HTTP/1.1
DELETE
DELETE
๋ฆฌ์์ค ์ ๊ฑฐ
DELETE /members/100 HTTP/1.1
HTTP ๋ฉ์๋์ ์์ฑ
์์ (Safe)
๋ฆฌ์์ค ๋ณ๊ฒฝ์ด ์ผ์ด๋์ง ์๋ ๊ฒ (ex. GET, HEAD ..)
๋ฉฑ๋ฑ(Idempotent)
๋ช ๋ฒ์ ํธ์ถํ๋ ๊ฒฐ๊ณผ๋ ๊ฐ๋ค (GET, PUT, DELETE)
์๋ ๋ณต๊ตฌ ๋ฉ์ปค๋์ฆ์์ ํ์ฉ
์บ์๊ฐ๋ฅ(Cacheable)
์๋ต ๊ฒฐ๊ณผ ๋ฆฌ์์ค๋ฅผ ์บ์ํด์ ์ฌ์ฉ (GET, HEAD ์ ๋๋ง ์บ์๋ก ์ฌ์ฉ)
HTTP ๋ฉ์๋ ํ์ฉ
ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ ์ก
Query Parameter๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก
GET
ex) ์ ๋ ฌ ํํฐ(๊ฒ์)
Message Body๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก
POST, PUT, PATCH
ex) ํ์๊ฐ์ , ์ํ์ฃผ๋ฌธ, ๋ฆฌ์์ค ๋ฑ๋ก, ๋ฆฌ์์ค ๋ณ๊ฒฝ
์ ์ ๋ฐ์ดํฐ ์กฐํ
GET
์ด๋ฏธ์ง, ์ ์ ํ ์คํธ ๋ฌธ์
Query Parameter ์์ด ๋ฆฌ์์ค ๊ฒฝ๋ก๋ก ๋จ์ ์กฐํ
๋์ ๋ฐ์ดํฐ ์กฐํ
GET
๊ฒ์๋ฌผ ๊ฒ์, ์ ๋ ฌ, ํํฐ
Query Parameter ์ฌ์ฉ
HTML FORM์ ํตํ ๋ฐ์ดํฐ ์ ์ก
POST
๋ฑ๋ก, ๋ณ๊ฒฝ
Content-Type
application/x-www-form-urlencoded
form ๋ด์ฉ์ Message Body๋ฅผ ํตํด ์ ์ก
์ ์ก ๋ฐ์ดํฐ๋ฅผ url encoding ์ฒ๋ฆฌ
multipart/form-data
ํ์ผ ์ ๋ก๋ ๊ฐ์ ๋ฐ์ด๋๋ฆฌ ๋ฐ์ดํฐ ์ ์ก ์ ์ฌ์ฉ
๋ค๋ฅธ ์ข ๋ฅ์ ์ฌ๋ฌ ํ์ผ๊ณผ ํผ ๋ด์ฉ์ ํจ๊ป ์ ์ก ๊ฐ๋ฅ
HTML Form ์ ์ก์ GET, POST๋ง ์ง์
HTTP API๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ก
Server to Server ํต์
๋ชจ๋ฐ์ผ ์ฑ ํด๋ผ์ด์ธํธ
Ajax ์น ํด๋ผ์ด์ธํธ
GET -> Query Parameter๋ก ๋ฐ์ดํฐ ์ ๋ฌ ํ ์กฐํ
POST, PUT, PATCH -> Message Body๋ฅผ ํตํด ๋ฐ์ดํฐ ์ ์ก
Content-Type : application/json
HTTP API ์ค๊ณ ์์
POST ๊ธฐ๋ฐ ๋ฑ๋ก
์๋ฒ๊ฐ ๊ด๋ฆฌํ๋ ๋ฆฌ์์ค ๋๋ ํ ๋ฆฌ (Collection)
ํ์ ๋ชฉ๋ก /members ->
GET
ํ์ ๋ฑ๋ก /members ->
POST
ํ์ ์กฐํ /members/{id} ->
GET
ํ์ ์์ /members/{id} ->
PATCH
,PUT
,POST
ํ์ ์ญ์ /members/{id} ->
DELETE
PUT ๊ธฐ๋ฐ ๋ฑ๋ก
ํด๋ผ์ด์ธํธ๊ฐ ๊ด๋ฆฌํ๋ ๋ฆฌ์์ค ์ ์ฅ์ (Store)
ํ์ผ ๋ชฉ๋ก /files ->
GET
ํ์ผ ์กฐํ /files/{filename} ->
GET
ํ์ผ ๋ฑ๋ก /files/{filename} ->
PUT
ํ์ผ ์ญ์ /files/{filename} ->
DELETE
ํ์ผ ๋๋ ๋ฑ๋ก /files ->
POST
HTML FORM ์ฌ์ฉ
HTML FORM์ GET, POST๋ง ์ง์ํ๋ฏ๋ก Control URI ์ฌ์ฉ
ํ์ ๋ชฉ๋ก /members ->
GET
ํ์ ๋ฑ๋ก ํผ /members/new ->
GET
ํ์ ๋ฑ๋ก /members/new ->
POST
ํ์ ์กฐํ /members/{id} ->
GET
ํ์ ์์ ํผ /members/{id}/edit ->
GET
ํ์ ์์ /members/{id}/edit ->
POST
ํ์ ์ญ์ /members/{id}/delete ->
POST
์ปฌ๋ ์ ๊ณผ ๋ฌธ์๋ก ์ต๋ํ ํด๊ฒฐํ๊ณ ๊ทธ ํ์ ์ปจํธ๋กค URI ์ฌ์ฉ
HTTP ์ํ์ฝ๋
2xx
(Successful): ์์ฒญ ์ ์ ์ฒ๋ฆฌ
2xx
(Successful): ์์ฒญ ์ ์ ์ฒ๋ฆฌCode
200 OK
201 Created (POST)
202 Accepted (batch)
204 No Content
3xx
(Redirection): ์์ฒญ์ ์๋ฃ๋ฅผ ์ํด ์ถ๊ฐ ํ๋ ํ์
3xx
(Redirection): ์์ฒญ์ ์๋ฃ๋ฅผ ์ํด ์ถ๊ฐ ํ๋ ํ์Redirect
์น ๋ธ๋ผ์ฐ์ ๋ 3xx ์๋ต์ ๊ฒฐ๊ณผ์ Location ํค๋๊ฐ ์์ผ๋ฉด, Location ์์น๋ก ์๋ ์ด๋
์๊ตฌ ๋ฆฌ๋ค์ด๋ ์ : ํน์ ๋ฆฌ์์ค์ URI๊ฐ ์๊ตฌ์ ์ผ๋ก ์ด๋ (301, 308)
์ผ์ ๋ฆฌ๋ค์ด๋ ์ : ์ผ์์ ์ธ ๋ณ๊ฒฝ (302, 303, 307)
PRG(Post/Redirect/Get)์ ์ฌ์ฉ / ์๋ก๊ณ ์นจ ์ค๋ณต ์ฃผ๋ฌธ ๋ฐฉ์ง
ํน์ ๋ฆฌ๋ค์ด๋ ์ : ๊ฒฐ๊ณผ ๋์ ์บ์ ์ฌ์ฉ
Code
300 Multiple Choices (X)
301 Moved Permanently
๋ฆฌ๋ค์ด๋ ํธ ์ Get์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ ์์ค
302 Found
๋ฆฌ๋ค์ด๋ ํธ ์ GET์ผ๋ก ๋ณํ๊ณ , ๋ณธ๋ฌธ ์ ๊ฑฐ
303 See Other
๋ฆฌ๋ค์ด๋ ํธ ์ GET์ผ๋ก ๋ณ๊ฒฝ
304 Not Modified
ํด๋ผ์ด์ธํธ์๊ฒ ๋ฆฌ์์ค๊ฐ ์์ ๋์ง ์์์์ ์๋ ค์ค (์บ์ ์ฌ์ฌ์ฉ)
307 Temporary Redirect
๋ฆฌ๋ค์ด๋ ํธ ์ ๋ฉ์๋์ ๋ณธ๋ฌธ ์ ์ง
308 Permanent Redirect
๋ฆฌ๋ค์ด๋ ํธ ์ POST, ๋ณธ๋ฌธ ์ ์ง
4xx
(Client Error)
4xx
(Client Error)์ค๋ฅ์ ์์ธ์ ํด๋ผ์ด์ธํธ
Code
400 Bad Request
ํด๋ผ์ด์ธํธ๊ฐ ์๋ชป๋ ์์ฒญ์ ํด์ ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์
401 Unauthorized
ํด๋ผ์ด์ธํธ๊ฐ ํด๋น ๋ฆฌ์์ค์ ๋ํ ์ธ์ฆ์ด ํ์
์ธ์ฆ(Authentication): ๋ก๊ทธ์ธ
์ธ๊ฐ(Authorization): ๊ถํ
403 Forbidden
์๋ฒ๊ฐ ์์ฒญ์ ์ดํดํ์ง๋ง ์น์ธ์ ๊ฑฐ๋ถ (์ ๊ทผ ๊ถํ ์ ํ)
404 Not Found
์์ฒญ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์์
5xx
(Server Error)
5xx
(Server Error)์๋ฒ ๋ฌธ์ ๋ก ์ค๋ฅ ๋ฐ์
Code
500 Internal Server Error
์๋ฒ ๋ด๋ถ ๋ฌธ์ ๋ก ์ค๋ฅ ๋ฐ์ (์ ๋งคํ๋ฉด 500)
503 Service Unavailable
์๋น์ค ์ด์ฉ ๋ถ๊ฐ
Last updated