๐ป ์น ์ํคํ ์ฒ์์ ๊ฐ ํค์๋๊ฐ ์๋ฏธํ๋ ๋ฐ๋ ๋ฌด์์ผ๊น?
HTTP
๊ฐ ๋ฌด์์ธ์ง์ ๋ํด ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ํต์ ํ๊ธฐ ์ํ ๊ท์ฝ ํน์ ๊ท์น์ด๋ค. ์ด๊ฒ์ ์ด์ ์ ๋์ด HTTP
๋ฅผ ์ดํดํด๋ณด์. HyperText Transfer Protocol
, ์ฌ๊ธฐ์ ์ค์ํ ๊ฒ์ Protocol
์ด๋ค.
ํ๋กํ ์ฝ(
Protocol
)์ ์ปดํจํฐ ๋ด๋ถ ๋๋ ์ปดํจํฐ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ๊ตํ๋๋ ๋ฐฉ๋ฒ์ ์ ์ํ๋ ๊ท์น ์์คํ ์ด๋ค. ๊ธฐ๊ธฐ๊ฐ ํต์ ์ ๊ตํ๋๊ณ ์๋ ๋ฐ์ดํฐ์ ํ์์ ๋ํด ์๋ก๊ฐ์ ์ํธ ํฉ์๋ฅผ ์๊ตฌ("๋ ์ด๋ฐ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์คํ ๋ ๋ ์ด๋ฐ ํํ๋ก ๋ฐ์ดํฐ๋ฅผ ์ค"์ ๊ฐ์ ์ฝ์์ ํ์๋ก ํ๋ค)ํ๋ค. ์ด๋ฌํ ํ์์ ์ ์ํ๋ ๊ท์น์ ์งํฉ์ ํ๋กํ ์ฝ์ด๋ผ๊ณ ํ๋ค.
HTTP
๋ฅผ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ๊ฐ๋ฐ์๋ ์น ๊ฐ๋ฐ์์ผ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ์น ๊ฐ๋ฐ์๋ผ๋ฉด ์ ์๊ณ ์์ด์ผ ํ HTTP
์ ๋ํด ๊ณต๋ถํด๋ณด์. ๊ฐ์๊ธฐ ๋ฌธ๋ ๋ ์๊ฐ, ํ๋กํ ์ฝ
์ด๋ผ๋ ๋จ์ด๊ฐ ๊ทธ๋ ๊ฒ ๋ฏ์ค๊ณ ์ด๋ ค์ ๋๋ฐ ์๊ณ ๋๋ ๋ณ๊ฑฐ ์๋์๋ค.
HTTP
๋ ์น์์ ์ด๋ฃจ์ด์ง๋ ๋ชจ๋ ๋ฐ์ดํฐ ๊ตํ์ ๊ธฐ์ด์ด๋ค. ์๋ ๋ฐฉ์์ ๋ํด ์์๋ณด์.
HTTP๋ ํญ์ ์์ฒญ์ ์๋ต์ ํ๋ ๊ท์น์ ๊ฐ์ง๊ณ ์๋ค. ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ(Request
)์ ํ๋ฉด ์๋ฒ๋ ์๋ต(Response
)์ ํ๋ค.
์๋ฅผ ๋ค์ด, ํด๋ผ์ด์ธํธ๊ฐ ๋ฉ์ธ์ง๋ฅผ ๋ฌ๋ผ๋ ์์ฒญ์ ํ๋ฉด ์๋ฒ๋ ๋ฉ์ธ์ง๋ฅผ ์ ๋ฌํด์ฃผ๋ ํํ๋ก ์๋ตํ๋ค.
๊ฐ๋ น ์ฌ์ง์ ๋ฌ๋ผ๋ ์์ฒญ์ ํ์ ๋, ์ฌ์ง์ด ์๋ค๋ฉด ์๋ฒ๋ ๋ฐ๋์ ์๋ค๋ ์๋ต์ ์ค์ผ ํ๋ค.
๊ทธ๋ฐ๋ฐ ๋ง์ฝ, ์ฌ์ง์ด ์๋ค๊ณ ํด์ ์๋ฒ๊ฐ ์์ฒญ์ ๋ฌด์ํ๊ณ ์๋ฌด๋ฐ ์๋ต์ ์ฃผ์ง ์๋๋ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
HTTP
์์ฒญ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํค๋์ ๋ฐ๋๋ฅผ ๊ฐ์ง๋ค. ํค๋์๋ ๋ณดํต ์ด๋์ ๋ณด๋ด๋ ์์ฒญ์ธ๊ฐ, ์ปจํ
์ธ ํ์
์ ๋ฌด์์ธ๊ฐ, ์ด๋ค ํด๋ผ์ด์ธํธ๋ฅผ ์ด์ฉํด ๋ณด๋๋๊ฐ(์ด๋ค OS
์์ ์ด๋ค ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ๋ณด๋๋๊ฐ)์ ๋ํ ์ ๋ณด๊ฐ ๋ด๊ฒจ์๋ค. ๋ฐ๋๋ ๊ฐ์ง๊ณ ์๋ ๋ฉ์๋๋ ์๊ณ ์๋ ๋ฉ์๋๋ค๋ ์๋ค. ๋ฐ๋์๋ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๊ณ ์๋ ๊ณต๊ฐ์ผ๋ก ํ์ฉํ๊ฒ ๋๋ค.
์๋ต๋ ๋ง์ฐฌ๊ฐ์ง๋ก ํค๋์ ๋ฐ๋๋ฅผ ๊ฐ์ง๋ค.
HTTP
์ ๊ฐ ์์ฒญ์ ๋ชจ๋ ๋
๋ฆฝ์ ์ด๋ค. ์ฆ, ๋ด๊ฐ ๋ ๋ฒ์ ์์ฒญ์ ๋ณด๋ธ๋ค๊ณ ํด์ ์๋ฒ๋ ๋ด๊ฐ ๋ณด๋๋ค๋ ๊ฒ์ ๋ฐ๋ก ์๋ณํด๋์ง ์๋ ์ด์ ๋ด๊ฐ ๋ณด๋๋ค๋ ๊ฒ์ ์ ์ ์๋ค. ๊ฐ ์์ฒญ์ ๋ชจ๋ ๋
๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์์๋ก ํด๋ผ์ด์ธํธ๊ฐ ์ผ๊ฒน์ด์ ๋จน์ผ๋ฌ ๊ฐ์๊ณ ํ๊ณ , ์๋ฒ๋ ์ข๋ค๊ณ ํ๋ค.
ํด๋ผ์ด์ธํธ๋ ์ผ๊ฒน์ด์ ๋จน์ผ๋ฌ ๊ฐ์๊ณ ํ์๊ธฐ ๋๋ฌธ์ ๋จน์ผ๋ฌ ๊ฐ์๊ณ ์์ฒญ์ ๋ณด๋ด๋ ์ด ์์ฒญ์ ์์์ ์ผ๊ฒน์ด์ ๋จน์๊ณ ํ๋ ์์ฒญ๊ณผ๋ ๋ณ๊ฐ์ ์์ฒญ์ด๋ฏ๋ก ์๋ฒ๋ ์์๋ฃ์ง ๋ชปํ๊ฒ ๋๋ ๊ฒ์ด๋ค. HTTP
์ ๋งค ์์ฒญ์ ๋
๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ state
๋ผ๋ ๊ฒ์ด ์๋ค. ์ด๊ฒ์ ๋ณด์ํ๊ธฐ ์ํด์ ์ถํ์ ์ธ์ฆ์ด๋ผ๋ ์ ์ฐจ๋ฅผ ๊ฑฐ์น๊ฒ ๋ ๊ฒ์ด๋ค.
๋น์ฐํ๊ฒ ์ง๋ง HTTP
๋ ํ ๋ฒ์ ์์ฒญ์ ํ ๋ฒ์ ์๋ต์ ํ๊ฒ ๋๋ค. connectionless
๋ผ๋ ๊ฒ์ ํ ๋ฒ์ ์์ฒญ๊ณผ ํ ๋ฒ์ ์๋ต์ด ์ด๋ฃจ์ด์ก๋ค๊ณ ํด์ ์ด ์ฐ๊ฒฐ์ด ์ง์ํด์ ์ด๋ฃจ์ด์ง๋ ๊ฒ์ด ์๋๋ผ๋ ๊ฒ์ด๋ค. ์ฆ, ์๋ตํ๋ ์๊ฐ ์ฐ๊ฒฐ์ ์ข
๋ฃ๋๊ณ , ์ฐ๊ฒฐ์ด ๋๊ธฐ๊ธฐ ๋๋ฌธ์ ๋๋ ์๋ต์ ํ ์ ์๊ฒ ๋ ๋ฟ๋๋ฌ ์ ์ฌ์ง์ฒ๋ผ ์๋ต์ ๋ ๋ฒ ๋ณด๋ผ ์๋ ์๋ค๋ ๊ฒ์ด๋ค.
HTTP
๋ ๋ํ์ ์ผ๋ก 4๊ฐ์ง์ ๋ฉ์๋๋ฅผ ๊ฐ๋๋ค.
GET
: ์๋ฒ์ ์์์ ์์ฒญ.POST
: ์๋ฒ์ ์์์ ์์ฑ.PUT
: ์๋ฒ์ ์์์ ์์ .DELETE
: ์๋ฒ์ ์์์ ์ ๊ฑฐ.HTTP messages
์ ์์ฒญ๊ณผ ์๋ต์ ์์์ ๋ํ ๊ทธ๋ฆผ์ด๋ค.
์์ฒญ์ ๋ค์์ ์์๋ค๋ก ๊ตฌ์ฑ๋๋ค.
Method
: HTTP
๋ฉ์๋, ๋ณดํต ํด๋ผ์ด์ธํธ๊ฐ ์ํํ๊ณ ์ ํ๋ ๋์์ ์ ์ํ GET
, POST
๊ฐ์ ๋์ฌ๋ OPTIONS๋
, HEAD
์ ๊ฐ์ ๋ช
์ฌ์ด๋ค.Path
: ๊ฐ์ ธ์ค๋ ค๋ ๋ฆฌ์์ค์ ๊ฒฝ๋ก์ด๊ณ ํ๋กํ ์ฝ(http://
), ๋๋ฉ์ธ(์๋ฅผ ๋ค์ด, velog.io
), ํฌํธ ๋ฑ์ ์์๋ค์ ์ ๊ฑฐํ ๋ฆฌ์์ค์ URL
์ด๋ค.Version of the protocol
: HTTP
์ ํ๋กํ ์ฝ ๋ฒ์ .Headers
: ์๋ฒ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๋ฌํ๋ ํค๋๋ค.Version of the protocol
: HTTP
ํ๋กํ ์ฝ์ ๋ฒ์ .Status code
: ์์ฒญ์ ์ฑ๊ณต ์ฌ๋ถ์, ๊ทธ ์ด์ ๋ฅผ ๋ํ๋ด๋ ์ํ ์ฝ๋.Status message
: ์ํ ์ฝ๋์ ์งง์ ์ค๋ช
์ ๋ํ๋ด๋ ์ํ ๋ฉ์์ง.Headers
: ์์ฒญ ํค๋์ ๋น์ทํ, HTTP
ํค๋๋ค.์์ ์๋ ๋ก๊ทธ์ธ์ ํ ๋, ์ ์ฌ์ง์ฒ๋ผ form.html
์ด๋ผ๋ ํ์ผ์์ <form>
ํ๊ทธ๋ฅผ ์ด์ฉํด์ ์ ๋ณด๋ฅผ ์์ฑํ๊ณ ์๋ฒ์ ์ ์ถํ๊ฒ ๋๋ฉด, ์๋ฒ์์๋ result.html
์ด๋ผ๋ ์๋ก์ด ํ์ด์ง๋ฅผ ์๋ตํด์คฌ๋ค.
ํ์ง๋ง ์ด๋ฌํ ๋ฐฉ์์ ์๋ก์ด ํ์ด์ง๋ฅผ ์์ ๋ด๋ ค๋ฐ๊ธฐ ๋๋ฌธ์ ์๋ฌด๋๋ ๋ก๋ฉ์๊ฐ๋ ๊ธธ๊ณ , ๋ณด์ด๋ ๋ถ๋ถ๋ค์ ์ ๋ถ ๋ค์ ๋ค ๋ ๋ํ๋ ๊น๋นก์ ํ์์ด ์ผ์ด๋๋ค.
๋ฒํผ์ ๋๋ฅผ๋๋ง๋ค ํ์ด์ง ์ ์ฒด๋ฅผ ๋ค์ ๋ฐ์์ค๋ ๊ฒ์ด ์๋๋ผ, ํ์ํ ๋ถ๋ถ๋ง ๋ถ๋ถ์ ์ผ๋ก ์ ๋ฐ์ดํธ ํ๊ธฐ ์ํด์๋ ์ด๋ป๊ฒ ํ ์ ์์๊น?
๊ทธ๋์ ๋ฑ์ฅํ๊ฒ์ด Dynamic Web Page
์ด๋ค. ์๋ฒ์ ์์ ๋กญ๊ฒ ํต์ ์ ํ๋ฉด์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ค๊ณ (XHR
), ํ์ด์ง ๊น๋นก์ ์์ด ์๋ํ๋(JavaScript & DOM
) ์น ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ฑ์ฅํ ๊ฒ์ด๋ค.
์ฆ, AJAX
๋ JavaScript
์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ค ํ๋์ด๋ฉฐ Asynchronous Javascript And Xml
(๋น๋๊ธฐ์ ์๋ฐ์คํฌ๋ฆฝํธ์ xml
)์ ์ฝ์์ด๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๊ฐ์ง๊ณ ์๋ XMLHttpRequest
๊ฐ์ฒด๋ฅผ ์ด์ฉํด์ ์ ์ฒด ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น์ง ์๊ณ ๋ ํ์ด์ง์ ์ผ๋ถ๋ง์ ์ํ ๋ฐ์ดํฐ๋ฅผ ๋ก๋ํ๋ ๊ธฐ๋ฒ์ด๋ฉฐ JavaScript
๋ฅผ ์ฌ์ฉํ ๋น๋๊ธฐ ํต์ , ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ์ XML
๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ธฐ์ ์ด๋ค.