<๊ฐ์>
HTTP๋ ๋ฌด์์ธ๊ฐ?
์์ฒญ๋ฉ์ธ์ง์ ์๋ต๋ฉ์ธ์ง์ ๊ตฌ์กฐ, ๋ด์ฉ์ด ์ด๋ป๊ฒ ๋๋๊ฐ?
1. HTTP๋ ๋ฌด์์ธ๊ฐ?
HTTP (Hyper Text Transfer Protocol)
: ํ ์คํธ ๊ธฐ๋ฐ ์ ์ก ํ๋กํ ์ฝ์ด๋ค.
(1) Protocol (ํ๋กํ ์ฝ)์ด๋?
Protocol์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์์ ๋ํ ์ฝ์์ด๋ค.
์ฝ์น์ ํฌ์๊ฐ ์ฌ์ธ์ ์ฝ์ํ๋ค๊ณ ์น์. ๋ชจ์๋ ๋ฒํธ ๋๊ธฐ, ์ฝ๋ ํฌ์ ํ๋ผ์ด๋ฅผ ์ณ๋ผ, ๊ท ๋ง์ง๋ฉด ํํธ ์ค ๋ฐ ํด๋ผ ์ด๋ค.
๋ ์ฌ๋์ด ์๋ก ๋ง์ถ ์ฌ์ธ์ด ํ๋กํ ์ฝ์ ์ผ์ข ์ด๋ค. ๋ง์ฝ ํฌ์๊ฐ ์ฌ์ธ๋ค์ ์ ์ธ์ ๋ค๋ฉด ์ฝ์น๊ฐ ์๋ฌด๋ฆฌ ์ฌ์ธ์ ๋ณด๋ด๋ ๋ชป ์์ ๋จน์ ๊ฒ์ด๋ค.
์ด์ ๋ง์ฐฌ๊ฐ์ง๋ก, ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ ํ๋กํ ์ฝ์ด ์ ๋ง์ถฐ์ ธ ์์ผ๋ฉด, ํด๋ผ์ด์ธํธ์์ ์๋ฌด๋ฆฌ ์์ฒญ์ ๋ณด๋ด๋, ์๋ฒ๋ ๊ทธ ๋ด์ฉ์ ์ฝ์ ์ ์๋ค.
(2) ๋ฐ๋ผ์ HTTP๋?
HTTP๋ ํ ์คํธ ๊ธฐ๋ฐ์ ํ๋กํ ์ฝ์ด๋ค.
๋ง ๊ทธ๋๋ก ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํ ์คํธ ๊ธฐ๋ฐ์ผ๋ก ์๋ก ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํ์์ ์ฝ์ํ ๊ฒ์ด๋ค.
(3) HTTP์ ํน์ง 3๊ฐ์ง
a. ๋จ์ํ๊ณ ์ฌ๋์ด ์ฝ๊ธฐ ํธํ๋ค. -> ๊ธฐ๊ณ์ด๊ฐ ์๋๋ผ ํ ์คํธ ๊ธฐ๋ฐ์ด์ด์ ์ฌ๋์ด ์ฝ๊ธฐ๊ฐ ์ข๋ค.
b. ํด๋ผ์ด์ธํธ ์ ๋ณด๋ฅผ ๋ฐ๋ก ์ ์ฅํ์ง ์๋๋ค.
(๋ฐ๋ผ์ ๊ฐ์ ํด๋ผ์ด์ดํธ๊ฐ ์์ฒญ์ ์ฐ๋ฌ์ ๋ ๋ฒ ๋ณด๋ด๋, ์๋ฒ๋ ๊ทธ๊ฒ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ ์จ ๊ฑด์ง ๋ชจ๋ฅธ๋ค.
์ด๊ฑธ ๋ณด์ํ๊ธฐ ์ํด์ ์ฟ ํค๋ ์ธ์ ์ ์ฌ์ฉํ๋ค.)
c. ์ฝ์ ๋ด์ฉ์ ํ์ฅ ๊ฐ๋ฅํ๋ค.
(HTTP ๋ฉ์ธ์ง์๋ ํค๋ ๋ถ๋ถ๊ณผ ๋ฐ๋ ๋ถ๋ถ์ด ์๋ค. ํค๋๋ ๋ฐ๋์ ๋ํ ์ค๋ช ์ด๋ ์ ๋ณด๋ฅผ ์ฃผ๋ก ๋ํ๋ธ๋ค.
HTTP๋ ํ์ค์ ์ผ๋ก ์ ๊ณตํ๋ ํค๋ ๋ด์ฉ ์ด์ธ์ ์ฌ์ฉ์๊ฐ ์ถ๊ฐํ๊ณ ์ถ์ ํค๋๋ฅผ ์ค์ค๋ก ์์ฑํ์ฌ ์ถ๊ฐํ ์ ์๋ค.
์ด๋ ๊ฒ ์ฌ์ฉ์๊ฐ ์ปค์คํฐ๋ง์ด์งํ ํค๋๋ฅผ ์ปค์คํ ํค๋๋ผ๊ณ ํ๋ค .)
(4) HTTP์ ๊ณตํต์ ์ธ ๊ตฌ์กฐ
์์๋ ์๋ต ๋ฉ์ธ์ง ์ด์ง๋ง, ์์ฒญ ๋ฉ์ธ์ง์๋ ๋๊ฐ์ด ์ ์ฉ๋๋ค.
๋ฐ๋์ ์ฐ๋ฆฌ๊ฐ ์์ฒญํ๊ฑฐ๋, ์๋ตํ๋ ์ค์ง ๋ด์ฉ์ด ๋ค์ด๊ฐ๋ค.
ํค๋๋ ๋ฐ๋์ ๋ํ ์ ๋ณด๋ ์ค๋ช ์ ๋ํ๋ธ๋ค.
2. ์๋ต ๋ฉ์ธ์ง
(1) ํค๋ ๋ถ๋ถ ์ค๋ช
์ฐ๋ฆฌ๊ฐ URL์ ์์ฑํ๋ฉด ์์ ๊ฐ์ด ๋ธ๋ผ์ฐ์ ๊ฐ ์์ฒญ ๋ฉ์ธ์ง์ ํค๋ ๋ถ๋ถ์ ์์ฑํ๋ค.
ํค๋๋ถ๋ถ์ ํฌ๊ฒ ์ํ ๋ผ์ธ๊ณผ ๋๋จธ์ง ๋ด์ฉ์ผ๋ก ๋๋๋ค.
์ํ๋ผ์ธ์ ์ HTTP/1.1์ HTTP ๋ฒ์ ผ ์ค ๋ฌด์์ ์ผ๋์ง ๋ํ๋ธ๋ค.
200์ด ์ ํ ๋ถ๋ถ์ ์ํ ์ฝ๋์ด๋ค. ์ฌ๊ธฐ๋ ์์ฒญ ์ฌํญ์ ๋ํ ์์ ์ด ์ ๋์๋์ง, ์๋์์ผ๋ฉด ๋ญ๊ฐ ๋ฌธ์ ์ธ์ง ์ํ๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๋ํ๋ธ๋ค.
์ํ์ฝ๋ | ์๋ฏธ |
1XX | ํด๋ผ์ด์ธํธ์ ์๋ฒ ๊ฐ์ ์ ๋ณด ๊ตํ์ด ๋ชฉ์ ์ธ ๊ฒฝ์ฐ ๊ทธ ์ํ๋ฅผ ๋ํ๋. (์ ์ ์ฐ์) |
2XX | ์์ฒญ์ ๋ํ ์๋ต์ด ์ฑ๊ณต์ ์ผ๋ก ์ด๋ฃจ์ด์ก์์ ๋ํ๋. |
3XX | ๋ค๋ฅธ URL๋ก ์์ฒญํด์ฃผ์ธ์. (KT ๊ณ ๊ฐ์ผํฐ์ ์์ดํ์ด๊ฐ ์ ์กํ๋ค๊ณ ์ฐ๋ฝ์คฌ๋๋ ๋ด์ ๋ฒํธ ์๋ ค์ฃผ๋ฉด์ ์ฌ๊ธฐ๋ก ์ฐ๋ฝํด๋ณด์ธ์~ ํ๋ ๊ฑฐ๋ ๊ฐ์ ์๋ฏธ) |
4XX | ํด๋ผ์ด์ธํธ ์๋ชป (ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ์๋ชป ๋ณด๋) |
5XX | ์๋ฒ ์๋ชป (ํด๋ผ์ด์ธํธ๊ฐ ๋ง๊ฒ ์์ฒญ์ ๋ณด๋๋๋ฐ, ์๋ฒ๊ฐ ํด๋น ์์ฒญ์ ๋ํ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐ ๋ชปํด ๋๋น๋ฅผ ๋ชป ํด๋จ๊ฑฐ๋, ์๋ฌ๊ฐ ๋ฌ ๊ฒฝ์ฐ) |
3. ์์ฒญ ๋ฉ์ธ์ง
** ์ฌ๊ธฐ์๋ ์ ์ผ ๋ํ์ ์ผ๋ก ์ฐ์ด๋ GET๊ณผ POST ์์ฒญ์ ๋ํด์ ์์๋ณธ๋ค.
(1)GET๊ณผ POST์ ๊ตฌ์กฐ
๋ ๋ค ๊ณตํต์ ์ผ๋ก ํค๋์ ๋ฐ๋ ์ฌ์ด์ ๋น ์ค์ด ์๋ค.
์ด๋ ํค๋๊ฐ ์ปค์คํฐ๋ง์ด์ง์ด ๊ฐ๋ฅํด์ ๊ธธ์ด๊ฐ ๊ฐ๋ณ์ ์ด๊ธฐ ๋๋ฌธ์ ๋์ ๊ตฌ๋ถํ๊ธฐ ์ํด์ ์ด๋ค.
Get์ ์ด๋ฏธ ์๋ฒ์ ์กด์ฌํ๋ ๋ฆฌ์์ค๋ฅผ ์ป์ด์ค๋ ๋ฉ์๋์ด๋ค. ์ปดํจํฐ ๊ตฌ์กฐ์์ ๋ฐฐ์ด Read์ ๊ฐ์ ์๋ฏธ.
Get์ Body๊ฐ ์๋ค. ๋ง์ฝ ์์ฒญ์ ๊ฐ์ด ๋ณด๋ด์ผ ํ ์ ๋ณด๊ฐ ์์ผ๋ฉด URL ๋์ String Query๋ก ์งค๋งํ๊ฒ ๋ณด๋ธ๋ค.
Post๋ ์๋ฒ์ ๋ด๊ฐ ๋ด์ฉ์ ๊ธฐ๋กํ๊ธฐ ์ํ ๋งค์๋์ด๋ค. ์ปดํจํฐ ๊ตฌ์กฐ์์ ๋ฐฐ์ด Write์ ๊ฐ์ ์๋ฏธ.
Post๋ Body๊ฐ ์๋ค.
(2)GET๊ณผ POST์ ํน์ง
GET | POST |
์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํ ๋ฉ์๋ | ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ธฐ ์ํ ๋ฉ์๋ |
์์ฉ๋์ ๋ฐ์ดํฐ๋ง ์ ๋ฌํ ์ ์๋ค. (Why? Body๊ฐ ์๊ณ , ์คํธ๋ง ์ฟผ๋ฆฌ๋ฅผ ์ด์ฉํด์๋ง ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ํฌ๋กฌ ๊ธฐ์ค ์ธ ์ ์๋ ์คํธ๋ง ์ฟผ๋ฆฌ๋ 7000์๋ก ์๋ค.) |
Body๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ ๋ฌด์ ํ ์ ๋ฌ ๊ฐ๋ฅ |
๋ฐ์ดํฐ ๋ณด์์ ์ทจ์ฝํ๊ณ ๊ณต์ ์ ์ ๋ฆฌํ๋ค. (์ ์กํ๋ ค๋ ๋ฐ์ดํฐ๋ฅผ URL ์์ ๊ทธ๋๋ก ์จ๋ฒ๋ฆฌ๋๊น ๋๊ตฌ๋ ๋ณผ ์ ์์ด์ ๋ณด์์ ์ทจ์ฝํ๋ค. ๊ทธ ๋์ ๋ฐ๋๋ก ๊ณต์ ์๋ ์ ๋ฆฌํ๋ค.) |
๋ณด์์ ๊ฐํ๋ ๊ณต์ ์๋ ๋ถ๋ฆฌํ๋ค. (์ผ๋จ body์ ๊ฐ์ถฐ์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ GET๋ณด๋จ ๋ซ์ง๋ง ์ด๊ฒ๋ง์ผ๋ก ๋ณด์์ด ๊ฐํ๋ค๊ณ ๋ณผ ์ ์๋ค. ์ง์ง ๋ณด์์ด ๊ฐํ ์ด์ ๋ ๊ตฌ SSL ํTLS๋ผ๋ ์ํธํ ํ๋กํ ์ฝ์ ์ด์ฉํด HTTP ๋ฉ์ธ์ง ์ ์กํ ๋ ๋ฉ์ธ์ง๋ฅผ ์ํธํ ํด์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ด๋ค. Body์ ๋ด์์ ์ ์กํ๊ธฐ ๋๋ฌธ์ ๊ณต์ ๋ ๋ถ๋ฆฌํ๋ค.) |
ex) ๊ฒ์์์ง์์ ๊ฒ์ ๋จ์ด ์ ์ก์ ์ด์ฉ | ex) ๊ฒ์ํ์ ๊ธ์ฐ๊ธฐ, ๋ก๊ทธ์ธ, ํ์๊ฐ์ |
4. ์ค์ค๋ก ํด๋ณด๊ธฐ
์