-
[Web] HTTP? GET vs POSTWeb 2020. 8. 3. 19:01๋ฐ์ํ
HTTP๋?
HTTP( HyperText Transfer Protocol )๋ WWW ์์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ์ ๋๋ค. ์ฆ, HTTP๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์ด๋ฃจ์ด์ง๋ ์์ฒญ/์๋ต (request/response) ํ๋กํ ์ฝ์ ๋๋ค. ์๋ฅผ ๋ค๋ฉด, ํด์์ด์ธํธ์ธ ์น ๋ธ๋ผ์ฐ์ ๊ฐ HTTP๋ฅผ ํตํ์ฌ ์๋ฒ๋ก๋ถํฐ ํน์ ์ ๋ณด๋ฅผ ์์ฒญํ๊ฒ ๋๋ฉด, ์๋ฒ๋ ์ด ์์ฒญ์ ์๋ตํ์ฌ ํ์ํ ์ ๋ณด๋ฅผ ํด๋น ์ฌ์ฉ์์๊ฒ ์ ๋ฌํ๊ฒ ๋ฉ๋๋ค. ์ด ๋, HTTP ์์ฒญ์ ํฌํจ๋๋ HTTP ๋ฉ์๋๋ ์๋ฒ๊ฐ ์์ฒญ์ ์ํํ๊ธฐ ์ํด ํด์ผํ ํ๋์ ํ์ํ๋ ์ฉ๋๋ก ์ฌ์ฉํฉ๋๋ค. ์ด HTTP ๋ฉ์๋ ์ค GET๊ณผ POST์ ํน์ง๊ณผ ์ฐจ์ด์ ์ ์์์ผ ํฉ๋๋ค.
GET
GET์ ์๋ฒ๋ก๋ถํฐ ์ ๋ณด๋ฅผ ์กฐํํ๋ ค๊ณ ์ค๊ณ๋ ๋ฉ์๋์ ๋๋ค.
GET์ ์์ฒญ์ ์ ์กํ ๋ ํ์ํ ๋ฐ์ดํฐ๋ฅผ Body์ ๋ด์ง ์๊ณ , ์ฟผ๋ฆฌ์คํธ๋ง์ ํตํด ์ ์กํฉ๋๋ค. ์ฟผ๋ฆฌ์คํธ๋ง์ด๋, URL์ ๋์ ?์ ํจ๊ป Key, Value ๊ฐ์ ์์ ์ด๋ฃจ๋ ์์ฒญ ํ๋ผ๋ฏธํฐ๋ฅผ ์ฟผ๋ฆฌ์คํธ๋ง์ด๋ผ๊ณ ํฉ๋๋ค.
( www.example-url/tistory?id=1&name=pp )
๋ค์์ URL ๋ค์ id ์ ๋ณด์ name ์ ๋ณด๊ฐ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์์ฒญ ํ๋ผ๋ฏธํฐ๊ฐ ์ฌ๋ฌ ๊ฐ๋ผ๋ฉด ๋ค์๊ณผ ๊ฐ์ด &๋ก ์ฐ๊ฒฐํฉ๋๋ค.
ํน์ง
-
GET์ Idempotent(๋ฉฑ๋ฑ) ํ๋ค๊ณ ํฉ๋๋ค. Idempotent๋ ๋์ผํ ์ฐ์ฐ์ ์ฌ๋ฌ ๋ฒ ์ํํ๋๋ผ๋ ๋์ผํ ๊ฒฐ๊ณผ๋ก์ GET์ผ๋ก ์๋ฒ์ ๋์ผํ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ์ ์กํ๋๋ผ๋ ๋์ผํ ์๋ต์ด ๋์์์ผ ํฉ๋๋ค.
-
๋ฐ๋ผ์ GET์ ์ค๊ณ์์น์ ๋ฐ๋ผ ์๋ฒ์ ๋ฐ์ดํฐ๋ ์ํ๋ฅผ ๋ณ๊ฒฝ์ํค์ง ์์์ผ Idempotentํ๊ธฐ ๋๋ฌธ์ ์ฃผ๋ก ์กฐํ๋ฅผ ํ ๋ ์ฌ์ฉํฉ๋๋ค.
POST
POST๋ ๋ฆฌ์์ค๋ฅผ ์์ฑ/๋ณ๊ฒฝํ๊ธฐ ์ํด ์ค๊ณ๋ ๋ฉ์๋์ ๋๋ค. GET๊ณผ๋ ๋ฌ๋ฆฌ ์ ์กํด์ผ๋ ๋ฐ์ดํฐ๋ฅผ HTTP ๋ฉ์ธ์ง์ Body์ ๋ด์์ ์ ์กํฉ๋๋ค.
POST๋ก ์์ฒญ์ ๋ณด๋ผ ๋ ์์ฒญ ํค๋์ Content-Type์ ์์ฒญ ๋ฐ์ดํฐ์ ํ์ ํ์๋ฅผ ํด์ผํฉ๋๋ค. ๋ฐ์ดํฐ ํ์ ์ด ์์ ๊ฒฝ์ฐ, ์๋ฒ๋ ๋ด์ฉ์ด๋ URL์ ํฌํจ๋ ๋ฆฌ์์ค์ ํ์ฅ์๋ช ์ผ๋ก ๋ฐ์ดํฐ ํ์ ์ ์ ์ถํฉ๋๋ค.
ํน์ง
-
POST๋ URL์ด ์๋ Body์ ์์ฒญํ ์ ๋ณด๋ฅผ ๋ด๊ธฐ ๋๋ฌธ์ ๊ธธ์ด ์ ํ์์ด ๋ฐ์ดํฐ ์ ์ก์ด ๊ฐ๋ฅํฉ๋๋ค.
-
POST๋ ๋ฐ์ดํฐ๊ฐ Body๋ก ์ ์ก๋๊ธฐ ๋๋ฌธ์ GET์ ๋นํ๋ฉด ๋ณด์์ ์ธ ๋ฉด์์ ์์ ํ๋ค๊ณ ๋งํ ์๋ ์์ผ๋, POST ์์ฒญ๋ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ ํด๋ก ์์ฒญ ๋ด์ฉ์ ํ์ธ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ์ํธํ๋ฅผ ํด์ผํฉ๋๋ค.
-
POST๋ Non-idempotentํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์๊ฒ ๋์ผํ ์์ฒญ์ ์ฌ๋ฌ ๋ฒ ์ ์กํด๋ ์๋ต์ ํญ์ ๋ค๋ฆ ๋๋ค.
HTTP ํต์
HTTP์ ๋ํด ๊ณต๋ถํ์ผ๋ HTTP ํต์ ์ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.
HTTP ํต์ ์ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์์ ๋๋ง ์๋ฒ๊ฐ ์๋ตํ์ฌ ํด๋น ์ ๋ณด๋ฅผ ์ ์กํ๊ณ ๊ณง๋ฐ๋ก ์ฐ๊ฒฐ์ ์ข ๋ฃํ๋ ๋ฐฉ์์ ๋๋ค.
์ด๋ฌํ ์ฐ๊ฒฐ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๊ฒฝ์ฐ ์๋ฒ๊ฐ ์๋ตํ๋ ๋จ๋ฐฉํฅ์ ์ธ ํต์ ์ผ๋ก ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ์๊ฒ๋ ๋ฐ์ดํฐ ์์ฒญ์ ํ ์๊ฐ ์์ต๋๋ค.
๋ฐ๋ผ์, HTTP ํต์ ์ ์ค์๊ฐ ์ฐ๊ฒฐ์ด ์๋, ํ์ํ ๊ฒฝ์ฐ์๋ง ์๋ฒ๋ก ์ ๊ทผํ๋ ๋ชจ๋ฐ์ผ ์ดํ๋ฆฌ์ผ์ด์ ์ด๋, ์น ์์ฃผ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ๋ ์ฉ์ดํฉ๋๋ค.
๋ฐ์ํ -