elice/study
[DB] HTTP Method | GET, POST
๊ฑด๋ง๋
2022. 2. 7. 14:40
0. HTTP Method
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ด๋ฃจ์ด์ง๋ ์์ฒญ(Request)๊ณผ ์๋ต(Response) ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐฉ์
- ํด๋ผ์ด์ธํธ๊ฐ ์น ์๋ฒ์๊ฒ ์ฌ์ฉ์ ์์ฒญ์ ๋ชฉ์ ์ด๋ ์ข ๋ฅ๋ฅผ ์๋ฆฌ๋ ์๋จ
- ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ
- GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, CONNECT
1. GET
- ํด๋ผ์ด์ธํธ โก ์๋ฒ ์ด๋ ํ ๋ฆฌ์์ค๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์์ฒญํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ๋ฉ์๋
- ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋(Read), ๊ฒ์(Retrieve)ํ ๋ ์ฌ์ฉ
- URL Parameter๋ฅผ ํตํด ์ ๋ณด๋ฅผ ๋๊ธฐ๋ ๋ฐฉ์
- ์์ฒญ ์ ์กํ ๋, URL ์ฃผ์ ๋ค์ ์ด๋ฆ๊ณผ ๊ฐ์ด ๊ฒฐํฉ๋ ์ฟผ๋ฆฌ ์คํธ๋ง(query string)์ ํฌํจ
- www.example-url.com/resources?name1=value1&name2=value2
ํน์ง
- ์บ์๊ฐ ๊ฐ๋ฅํ๋ค.
- ๋ถํ์ํ ์์ฒญ์ ์ ํํ๊ธฐ ์ํด (js, css, ์ด๋ฏธ์ง ๊ฐ์ ์ ์ ์ปจํ ์ธ ์์ฒญ โก ์บ์ โก ์บ์๋ ๋ฐ์ดํฐ ์ฌ์ฉ)
- ๊ฐ์ ์์ฒญ ์ฌ๋ฌ๋ฒ ํด๋ ํญ์ ๊ฐ์ ์๋ต ๋ฐํ
- HTTP ํค๋์์ cache-control ํค๋๋ฅผ ํตํด ์บ์ ์ต์ ์ ์ง์ ํ ์ ์๋ค.
- ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ๋๋ค.
- ๋ถ๋งํฌํ ์ ์๋ค.
- ๋ฐ์ดํฐ ๊ธธ์ด์ ๋ํ ์ ํ์ด ์๋ค. (๋ธ๋ผ์ฐ์ ๊ธฐ์ค์ ๋ฐ๋ผ ๋ค๋ฆ)
- ์ฑ๊ณต ์, 200(Ok) HTTP ์๋ต ์ฝ๋๋ฅผ XML, JSON ๋ฟ๋ง ์๋๋ผ ์ฌ๋ฌ ํ์์ ๋ฐ์ดํฐ(html, txt ๋ฑ)์ ํจ๊ป ๋ฐํ
- POST ๋ฐฉ์๋ณด๋ค ์๋์ ์ผ๋ก ์ ์ก ์๋๊ฐ ๋น ๋ฆ
2. POST
- ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฉ์๋
- HTTP Body ์์ ์ ๋ณด๋ฅผ ๋ด์์ ๋ณด๋ด๋ ๋ฐฉ์ (์ํธํ๊ฐ ๋๋ค๋ ์๋ฏธ๋ ์๋)
- ์ผ์ ํฌ๊ธฐ ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด์ผ ํ ๋ ์ฌ์ฉ
- ์๋ฒ๋ก ๋ณด๋ด๊ธฐ ์ ์ ์ธ์ฝ๋ฉ, ์ ์ก ํ ์๋ฒ์์๋ ๋ค์ ๋์ฝ๋ฉ
์ ์ฌ์ง๊ณผ ๊ฐ์ด ์ ๋ ฅํ ์ ๋ณด๋ค์ ํ์ธํด๋ณผ ์ ์์ผ๋ฏ๋ก ์ํธํ๋๋ ๊ฒ์ ์๋
ํน์ง
- ์บ์๊ฐ ๋ถ๊ฐ๋ฅํ๋ค.
- ๋ธ๋ผ์ฐ์ ํ์คํ ๋ฆฌ์ ๋จ์ง ์๋๋ค.
- ๋ถ๋งํฌํ ์ ์๋ค.
- ๋ฐ์ดํฐ ๊ธธ์ด์ ๋ํ ์ ํ์ด ์๋ค.
- POST ์์ฒญ ์ค ์์ ์์ฑ์ 201(Created) HTTP ์๋ต ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
- ์ฃผ์์ฐฝ์ ์ ์กํ๋ ๋ฐ์ดํฐ์ ์ ๋ณด ๋ ธ์ถ X โก GET ๋ฐฉ์์ ๋นํด ๋ณด์์ฑ์ด ๋์
- ์๋๊ฐ GET ๋ฐฉ์๋ณด๋ค ๋๋ฆผ
- ์ฟผ๋ฆฌ์คํธ๋ง(๋ฌธ์์ด) ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ, ๋ผ๋์ค ๋ฒํผ, ํ ์คํธ ๋ฐ์ค ๊ฐ์ ๊ฐ์ฒด๋ค์ ๊ฐ๋ ์ ์ก ๊ฐ๋ฅ
๐น GET์ ๊ฐ์ ธ์ค๋ ๊ฒ, POST๋ ์ํํ๋ ๊ฒ
๐น GET์ SELECT๋ฌธ๊ณผ ๋น์ทํ๊ณ , POST๋ DB์ ๊ฐ์ ์ ์ฅํ๊ฑฐ๋ ํ์ธํ ๋ ์ฌ์ฉ
3. ์ฐจ์ด์
GET | POST | |
ํ์คํ ๋ฆฌ | parameter๊ฐ URL์ ์ผ๋ถ โก ๋ธ๋ผ์ฐ์ ๊ธฐ๋ก์ ๋จ์ | parameter ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ x |
๋ถ๋งํฌ | URL๋ก ์ธ์ฝ๋ฉ ๋๋ฏ๋ก ๋ถ๋งํฌ ๊ฐ๋ฅ | ์์ฒญ parameter๊ฐ req body์ ํฌํจ โก ๋ถ๋งํฌ x |
parameter | ์ ์ก ๊ฐ๋ฅ URL์ 2K ์ดํ๋ก ๋ฃ๋๊ฒ ์์ query string์ผ๋ก URL ๋ค์ ? ๋ค์ ๋ถ์ |
์๋ฒ์ ํ์ผ ์ ๋ก๋ ๋ฑ์ ํฌํจํด์ ๊ฐ๋ฅ |
form data type | ASCII ๋ฌธ์ | ์ ํ ์์ |
ํดํน | ์ฌ์ (script kiddles) | GET๋ณด๋ค ํดํน ์ด๋ ค์ |
์ฌ์ฉ | ๋ฆฌ์์ค ์์ฒญ ๋ฏผ๊ฐํ ์ ๋ณด ์ ์ก ์ ์ฌ์ฉ x |
๋ฆฌ์์ค ์์ฑ ๋น๋ฐ๋ฒํธ ์ ์ก ๋ฑ์ ์ฌ์ฉ ๊ฐ๋ฅ |
์บ์ | Idempotent ๊ฐ์ ์์ฒญ ์ฌ๋ฌ๋ฒ ํด๋ ํญ์ ๊ฐ์ ์๋ต |
Not idempotent ์์ฒญ ์ฌ๋ฌ๋ฒ ํด๋ ๋ค๋ฅธ ์๋ต ์ฌ ์ ์๋ค. |
HTTP ์๋ต ์ฝ๋ | 200 (Ok) | 201 (Created) |
encode-type | application/x-www-form-urlencoded | multipart/form-data, application/x-www-form-urlencoded ๋ฑ |
์ฐธ๊ณ
https://newbiecs.tistory.com/243
https://donologue.tistory.com/379