client๊ฐ ์๋ฒ์ ์ ๋ณด๋ฅผ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์๋ ํฌ๊ฒ GET๊ณผ POST, ์ด ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค. ๋๋ค ๋ฐ์ดํฐ๋ฅผ ์๋ฒ์ ๋ณด๋ด์ค๋ค๋ ๊ณตํต์ ์ด ์์ง๋ง ๋ค๋ฅธ ์ฅ๋จ์ ๋ ์กด์ฌํ๊ธฐ ๋๋ฌธ์ ์ํฉ์ ๋ง๋ ์ ์ ํ method๋ฅผ ์ ํํ์ฌ์ผ ํฉ๋๋ค.
GET method๋ก ๋ฐ์ดํฐ ์ ์ก
Get ๋ฉ์๋๋ client์ ๋ฐ์ดํฐ๋ฅผ URL ๋ค์ ๋ถ์ฌ์ ๋ณด๋ ๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ key์ value์ ์์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ HTTPํจํท์ ํค๋์ ํฌํจ๋์ด ์๋ฒ์ ์์ฒญํ๊ฒ ๋ฉ๋๋ค.
GET/RegisterStudent.asp?user=value1&pass=value2
์์ ๊ฐ์ ํํ๋ก ๋ฐ์ดํฐ๊ฐ ๋ณด๋ด์ง๊ฒ ๋๋๋ฐ, URL๋ค์ "?"๋ฅผ ํตํด URL์ ๋๊ณผ ๋ฐ์ดํฐ ํํ์ ์์์ ์ ์๋ฆฝ๋๋ค. ์ฌ๊ธฐ์ key๋ “user”์ “pass”์ด๋ฉฐ ๊ฐ๊ฐ value1, value2์ ์์ผ๋ก ํํ๋์ด ์๋๊ฒ์ ๋ณด์ค์ ์์ต๋๋ค.
๋ฐ์ดํฐ๋ฅผ URL์ ๋ถ์ด๊ธฐ ๋๋ฌธ์ Body๋ ์๋์ ๊ฐ์ด ๋น์ํ๋ก ๋ณด๋ด์ง๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ผ์ ํค๋ ๋ด์ฉ์ Body๋ด์ฉ์ ์ค๋ช ํ๋ Content-Type ํค๋ ํ๋ ๋ํ ์์ฐ์ค๋ฝ๊ฒ ์๋ต๋๋ ๊ฒ์ ๋๋ค.
URLํํ๋ก ํํ๋๊ธฐ ๋๋ฌธ์ ํน์ ํจํค์ง๋ฅผ ๋ค๋ฅธ์ฌ๋ ์๊ฒ ์ ์ํ๊ฒ ํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด URL์ ๋ฐ์ดํฐ๊ฐ ํ์๋๋ค๋ ํน์ง ๋๋ฌธ์ ๋ณด๋ด๋ ๋ฐ์ดํฐ๋ฅผ client์ธก์์ ์ ๋ถ ๋ณผ ์ ์๊ณ , ์ด๋ ๋ณด์ ๋ฌธ์ ๋ฅผ ์ผ๊ธฐํ๊ธฐ๋ ํฉ๋๋ค.
๊ฐ๋จํ ๋ฐ์ดํฐ๋ฅผ ๋ฃ๋๋ก ์ค๊ณ๋์ด, ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ์์ ํ๊ณ๊ฐ ์์ผ๋ฉฐ ๋ฐ์ดํฐ์ ์ ์ฅ์ด ๊ฐํธํ๋ค๋ ํน์ง์ด ์์ต๋๋ค.
POST method๋ก ๋ฐ์ดํฐ ์ ์ก
POST ๋ฉ์๋๋ GET๊ณผ ๋ฌ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ URL์ ๋ถ์ฌ์ ๋ณด๋ด์ง ์๊ณ BODY์ ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ด์ ๋ณด๋ด๊ฒ ๋ฉ๋๋ค.
POST/RegisterStudent.asp HTTP/1.1
Host: www.headf1rst.github.io user=value1&pass=value2
๋ฐ๋ผ์ ํค๋ํ๋์ค BODY์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ช ํ๋ Content-Type์ด๋ผ๋ ํค๋ํ๋๊ฐ ํฌํจ๋๋ฉฐ ์ด๋ค ์ปจํ ์ธ ํ์ ์ธ์ง ๋ช ์ํด ์ค์ผ ํฉ๋๋ค.
์ฌ๋ฌ Content-Type์ค ๋ํ์ ์ธ ์ธ๊ฐ์ง๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. application/x-www-form-urlencoded
๊ตฌ๋ถ์ &๋ฅผ ์ฌ์ฉํ๋ฉฐ GET๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก BODY์ key, value ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ต๋๋ค. ((์ปจํ ์ธ ๋ฅผ ๋ช ์ํด ์ฃผ์ง ์์ ๊ฒฝ์ฐ ๋ํดํธ ๊ฐ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค.)
2. text/plain
BODY์ ๋จ์ txt๋ฅผ ๋ฃ์ต๋๋ค
3. multipart/form-data
BODY์ ๋ฐ์ดํฐ๋ฅผ binary ๋ฐ์ดํฐ๋ก ๋ฃ๋๋ค๋ ๊ฒ์ ์๋ ค์ค๋๋ค. ์ฃผ๋ก ํ์ผ์ ์ก์ ๋ง์ด ์ฐ์ด๋ ํ์ ์ ๋๋ค.
GET vs POST
- GET ๋ฉ์๋์์ client๋ URL์ ํตํด value๋ฅผ ๋ณผ ์ ์๋ ๋ฐ๋ฉด POST์์๋ value๊ฐ URL์ ๋ํ๋์ง ์์ต๋๋ค.
- GET์ value์ ๊ธธ์ด์ ์ ํ์ด ์์ต๋๋ค. ((์ฃผ๋ก 255๊ฐ์ ๋ฌธ์) ๋ฐ๋ฉด POST๋ value๊ฐ HTTP์ BODY์ ํฌํจ์ด ์ ์ก๋๊ธฐ ๋๋ฌธ์ ๊ธธ์ด์ ์ ํ์ด ์์ต๋๋ค.
- GET์ ๋ฌธ์์ด ๋ฐ์ดํฐ ํ์ ๋ง ์ง์ํฉ๋๋ค. ๋ฐ๋ฉด POST๋ ๋ฌธ์์ด, ๋ฐ์ด๋๋ฆฌ, ์ซ์๋ฑ์ ๋ค์ํ ๋ฐ์ดํฐ ํ์ ์ ์ง์ํฉ๋๋ค.
- GET ๋ฐฉ์์ ์์ฒญ์ ์บ์ฑ์ ์ฌ์ฉํ์ฌ POST ๋ณด๋ค ๋น ๋ฆ ๋๋ค
์ฐธ๊ณ ์๋ฃ
'๐ CS [ComputerScience] > ๐ ์ปดํจํฐ๋คํธ์ํฌ [ComputerNetwork]' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Network] Network Layer - Control Plane& Data Plane (0) | 2022.06.17 |
---|---|
[Network] TCP ํ๋ฆ์ ์ด (0) | 2022.05.02 |
[Network] TCP ํผ์ก์ ์ด (0) | 2022.05.02 |
[Network] Application Architecture (0) | 2022.04.28 |
[Network] Computer Network OSI 7 Layer (0) | 2022.04.28 |