05-1 DNS์ ์์
๋๋ฉ์ธ ๋ค์๊ณผ ๋ค์ ์๋ฒ
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ์๋ ์๋ ํธ์คํธ๋ฅผ ํน์ ํ๊ธฐ ์ํด IP ์ฃผ์๋ณด๋ค๋ ๋๋ฉ์ธ ๋ค์(domain name)์ ๋ง์ด ์ฌ์ฉํ๋ค.
- ๋๋ฉ์ธ ๋ค์์ ํธ์คํธ์ IP ์ฃผ์์ ๋์๋๋ ๋ฌธ์์ด ํํ์ ํธ์คํธ ํน์ ์ ๋ณด์ด๋ค.
- ๋๋ฉ์ธ ๋ค์๊ณผ IP ์ฃผ์๋ ๋ค์ ์๋ฒ(name server)์์ ๊ด๋ฆฌ.
- ๋๋ฉ์ธ ๋ค์์ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ๋ DNS ์๋ฒ๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- ๋๋ฉ์ธ ๋ค์์ ๋ค์ ์๋ฒ์ ์ง์ํ๋ฉด ํด๋น ๋๋ฉ์ธ ๋ค์์ ๋ํ IP ์ฃผ์๋ฅผ ์๋ ค์ฃผ๋ ๋ฐฉ์์ผ๋ก ๋๋ฉ์ธ ๋ค์์ผ๋ก IP ์ฃผ์๋ฅผ ์์๋ผ ์ ์๋ค.
- ๋๋ฉ์ธ ๋ค์์ IP ์ฃผ์์ ๋นํด ๊ธฐ์ตํ๊ธฐ ์ฌ์ธ๋ฟ๋๋ฌ, IP ์ฃผ์๊ฐ ๋ฐ๋๋๋ผ๋ ๋ฐ๋ IP ์ฃผ์์ ๋๋ฉ์ธ ๋ค์์ ๋ค์ ๋์ํ๋ฉด ๋๋ฏ๋ก IP ์ฃผ์๋ง์ผ๋ก ํธ์คํธ๋ฅผ ํน์ ํ๋ ๊ฒ๋ณด๋ค ๋ ๊ฐํธํ๋ค.
๋๋ฉ์ธ ๋ค์ ๊ตฌ์กฐ
- ๋๋ฉ์ธ ๋ค์์ ์ (.)์ ๊ธฐ์ค์ผ๋ก ๊ณ์ธต์ ์ผ๋ก ๋ถ๋ฅ๋๋ค.
- ์ต์๋จ์ ๋ฃจํธ ๋๋ฉ์ธ์ด ์๊ณ , ๊ทธ ๋ค์ ๋จ๊ณ์ธ ์ต์์ ๋๋ฉ์ธ(TLD)์ด ์์ผ๋ฉฐ, ๊ณ์ ๊ทธ ๋ค์ ๋จ๊ณ์ ๋๋ฉ์ธ์ด ์๋ ์์ด๋ค.
- ์ผ๋ฐ์ ์ผ๋ก 3~5๋จ๊ณ ์ ๋๋ฏธ์ฌ, ๋๋ฉ์ธ ๋ค์์ ๋ชจ๋ ํฌํจํ๋ ๋๋ฉ์ธ ๋ค์์ ์ ์ฒด ์ฃผ์ ๋๋ฉ์ธ ๋ค์(FQDN: Fully-Qualified Domain Name)์ด๋ผ๊ณ ํ๋ค.
- ๊ณ์ธต์ ์ธ ๋๋ฉ์ธ ๋ค์์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๋ค์ ์๋ฒ ๋ํ ๊ณ์ธต์ ์ธ ํํ๋ฅผ ์ด๋ฃฌ๋ค.
- ๋ค์ ์๋ฒ๋ ์ฌ๋ฌ ๊ฐ ์กด์ฌํ๋ฉฐ ์ ์ธ๊ณ ์ฌ๋ฌ ๊ตฐ๋ฐ์ ์์นํด ์๋ค.
- ๊ณ์ธต์ ์ด๊ณ , ๋ถ์ฐ๋ ๋๋ฉ์ธ ๋ค์์ ๋ํ ๊ด๋ฆฌ ์ฒด๊ณ๋ฅผ ๋๋ฉ์ธ ๋ค์ ์์คํ (DNS)๋ผ๊ณ ๋ถ๋ฅธ๋ค.
- DNS๋ ํธ์คํธ๊ฐ ์ด๋ฌํ ๋๋ฉ์ธ ๋ค์ ์์คํ ์ ์ด์ฉํ ์ ์๋๋ก ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ์ ์๋ฏธํ๊ธฐ๋ ํ๋ค.
๊ณ์ธต์ ๋ค์ ์๋ฒ
- IP ์ฃผ์๋ฅผ ๋ชจ๋ฅด๋ ์ํ์์ ๋๋ฉ์ธ ๋ค์์ ๋์๋๋ IP ์ฃผ์๋ฅผ ์์๋ด๋ ๊ณผ์ ์ '๋๋ฉ์ธ ๋ค์์ ํ์ด(resolve)ํ๋ค.'๋ผ๊ณ ํํ.
- ์ค์ํ ์ญํ ์ ๋ด๋นํ๋ ๋ค์ ์๋ฒ์ 4 ๊ฐ์ง ์ ํ
- ๋ก์ปฌ ๋ค์ ์๋ฒ
- ํด๋ผ์ด์ธํธ์ ๋ง๋ฟ์ ์๋ ๋ค์ ์๋ฒ.
- ํด๋ผ์ด์ธํธ๊ฐ ๋๋ฉ์ธ ๋ค์์ ํตํด IP ์ฃผ์๋ฅผ ์์๋ด๊ณ ์ ํ ๋ ๊ฐ์ฅ ๋จผ์ ์ฐพ๊ฒ ๋๋ ๋ค์ ์๋ฒ.
- ๋ก์ปฌ ๋ค์ ์๋ฒ์ ์ฃผ์๋ ์ผ๋ฐ์ ์ผ๋ก ISP์์ ํ ๋นํด ์ฃผ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ๊ณต๊ฐ DNS ์๋ฒ๋ฅผ ์ด์ฉํ ์๋ ์๋ค.
- ๊ตฌ๊ธ์ 8.8.8.8, 8.8.4.4์ ํด๋ผ์ฐ๋ํ๋ ์ด์ 1.1.1.1์ด ์๋ค.
- ๋ฃจํธ ๋ค์ ์๋ฒ
- ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋์๋๋ IP ์ฃผ์๋ฅผ ๋ชจ๋ฅผ ๋ ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ ํด๋น ๋๋ฉ์ธ ๋ค์์ ์ง์ํ๋ค.
- ๋ฃจํธ ๋๋ฉ์ธ์ ๊ด์ฅํ๋ ๋ค์ ์๋ฒ๋ก, ์ง์์ ๋ํด TLD ๋ค์ ์๋ฒ์ IP ์ฃผ์๋ฅผ ๋ฐํํ ์ ์๋ค.
- TLD(์ต์์ ๋๋ฉ์ธ) ๋ค์ ์๋ฒ
- TLD์ ํ์ ๋๋ฉ์ธ ๋ค์์ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ ์ฃผ์๋ฅผ ๋ฐํ.
- ํ์ ๋๋ฉ์ธ ๋ค์์ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ทธ๋ณด๋ค ํ์ ๋๋ฉ์ธ ๋ค์์ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ ์ฃผ์๋ฅผ ๋ฐํํ ์ ์๋ค.
- ์ฑ
์ ๋ค์ ์๋ฒ
- ํน์ ๋๋ฉ์ธ ์์ญ์ ๊ด๋ฆฌํ๋ ๋ค์ ์๋ฒ.
- ์์ ์ด ๊ด๋ฆฌํ๋ ๋๋ฉ์ธ ์์ญ์ ์ง์์ ๋ํด์ ๋ค๋ฅธ ๋ค์ ์๋ฒ์๊ฒ ๋ ๋๊ธฐ์ง ์๊ณ ๊ณง๋ฐ๋ก ๋ตํ ์ ์๋ ๋ค์ ์๋ฒ.
- ์ฆ, ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋ง์ง๋ง์ผ๋ก ์ง์ํ๋ ๋ค์ ์๋ฒ.
- ์ผ๋ฐ์ ์ผ๋ก ๋ก์ปฌ ๋ค์ ์๋ฒ๋ ์ฑ ์ ๋ค์ ์๋ฒ๋ก๋ถํฐ ์ํ๋ IP ์ฃผ์๋ฅผ ์ป์ด๋ธ๋ค.
- ๋ก์ปฌ ๋ค์ ์๋ฒ
IP ์ฃผ์๋ฅผ ์์๋ด๋ ๊ณผ์
- ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋ค์ ์๋ฒ๋ค์๊ฒ ์ง์ํ๋ ๋ฐฉ๋ฒ์๋ ์ฌ๊ท์ ์ง์์ ๋ฐ๋ณต์ ์ง์๊ฐ ์๋ค.
์ฌ๊ท์ ์ง์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ก์ปฌ ๋ค์ ์๋ฒ์๊ฒ ๋๋ฉ์ธ ๋ค์์ ์ง์ํ๋ฉด, ๋ก์ปฌ ๋ค์ ์๋ฒ๊ฐ ๋ฃจํธ ๋ค์ ์๋ฒ์๊ฒ ์ง์ํ๊ณ , ๋ฃจํธ ๋ค์ ์๋ฒ๊ฐ TLD ๋ค์ ์๋ฒ์๊ฒ ์ง์ํ๊ณ , TLD ๋ค์ ์๋ฒ๊ฐ ๋ค์ ๋จ๊ณ(์ฑ ์ ๋ค์ ์๋ฒ)์ ์ง์ํ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ฉฐ ์ต์ข ์๋ต ๊ฒฐ๊ณผ๋ฅผ ์ญ์์ผ๋ก ์ ๋ฌ๋ฐ๋ ๋ฐฉ์.
๋ฐ๋ณต์ ์ง์
- ํด๋ผ์ด์ธํธ๊ฐ ๋ก์ปฌ ๋ค์ ์๋ฒ์๊ฒ IP ์ฃผ์๋ฅผ ์๊ณ ์ถ์ ๋๋ฉ์ธ ๋ค์์ ์ง์ํ๋ฉด, ๋ก์ปฌ ๋ค์ ์๋ฒ๋ ๋ฃจํธ ๋๋ฉ์ธ ์๋ฒ์๊ฒ ์ง์ํด์ ๋ค์์ผ๋ก ์ง์ํ ๋ค์ ์๋ฒ์ ์ฃผ์๋ฅผ ์๋ต๋ฐ์.
- ๋ค์์ผ๋ก TLD ๋ค์ ์๋ฒ์๊ฒ ์ง์ํด์ ๋ค์์ผ๋ก ์ง์ํ ๋ค์ ์๋ฒ์ ์ฃผ์๋ฅผ ์๋ต๋ฐ๋ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค๊ฐ ์ต์ข ์๋ต ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค์ฃผ๋ ๋ฐฉ์.
- ์์ ๋ ๋ฐฉ๋ฒ์ ๋๋ฉ์ธ ๋ค์์ ๋ฆฌ์กธ๋น ํ๊ธฐ ์ํด 8๊ฐ์ ๋จ๊ณ๋ฅผ ๊ฑฐ์ณ์ผ ํ๋ ๊ฒ์ฒ๋ผ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๊ณ ๋คํธ์ํฌ์์ ๋ฉ์์ง ์๊ฐ ์ง๋์น๊ฒ ๋์ด๋ ์ ์๋ค๋ ๋ฌธ์ ๊ฐ ์๋ค.
- ๊ทธ๋์ ์ค์ ๋ก๋ ๋ค์ ์๋ฒ๋ค์ด ๊ธฐ์กด์ ์๋ต๋ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์์๋ก ์ ์ฅํ๋ค๊ฐ ์ถํ ๊ฐ์ ์ง์์ ์ด๋ฅผ ํ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- ์ด๋ฅผ DNS ์บ์๋ผ๊ณ ํ๋ฉฐ, ๋ ์งง์ ์๊ฐ ์์ ์ํ๋ IP ์ฃผ์๋ฅผ ์ป์ด๋ผ ์ ์๋ค.
์์์ ์๋ณํ๋ URI(Uniform Resource Identifier)
- ์์(resource)๋ ๋คํธ์ํฌ์์ ๋ฉ์์ง๋ฅผ ํตํด ์ฃผ๊ณ ๋ฐ๋ ๋์.
- ์ฆ, ๋ ํธ์คํธ๊ฐ ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋, ์ก์์ ํ๋ ๋์.
- ๋คํธ์ํฌ์์์ ์์์ ์ฃผ๊ณ ๋ฐ์ผ๋ ค๋ฉด ์์์ ์๋ณํ ์ ์์ด์ผ ํ๋๋ฐ ์ด๋ฅผ URI๋ผ๊ณ ํ๋ค.
- ์์์ ์๋ณํ๋ ํต์ผ๋ ๋ฐฉ์.
- URI๋ฅผ ์๋ณ ์ ๋ณด ๊ธฐ์ค์ผ๋ก ๋ถ๋ฅํ ๊ฐ๋
๋ ๊ฐ์ง
- URL: ์์น๋ฅผ ์ด์ฉํด ์์์ ์๋ณ
- URN: ์ด๋ฆ์ ์ด์ฉํด ์์์ ์๋ณ
URL(Uniform Resource Locator)
- scheme
- URL์ ์ฒซ ๋ถ๋ถ์ผ๋ก ์์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธ.
- ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ ํ๋กํ ์ฝ์ด ๋ช
์๋๋ค.
- ex) http:// , https://
- authority
- ํธ์คํธ๋ฅผ ํน์ ํ ์ ์๋ ์ ๋ณด๊ฐ ๋ช
์.
- IP ์ฃผ์ ํน์ ๋๋ฉ์ธ ๋ค์์ด ๋ช ์๋๋ฉฐ, ์ฝ๋ก (:) ๋ค์ ํฌํธ ๋ฒํธ๋ฅผ ๋ง๋ถ์ผ ์๋ ์๋ค.
- ํธ์คํธ๋ฅผ ํน์ ํ ์ ์๋ ์ ๋ณด๊ฐ ๋ช
์.
- path
- ์์์ด ์์นํ ๊ฒฝ๋ก๊ฐ ๋ช ์.
- ์์์ ์์น๋ ์ฌ๋์(/)๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ณ์ธต์ ์ผ๋ก ํํ๋๊ณ , ์ต์์ ๊ฒฝ๋ก ๋ํ ์ฌ๋์๋ก ํํ.
- query
- ์๋ง์ ์ ๋ณด ์ค์์ 'ํน์ ๋จ์ด๋ฅผ ๊ฒ์ํ ๊ฒฐ๊ณผ'์ ํด๋นํ๋ ์์์ด๋ ์๋ง์ ์ํ ์ค์์ 'ํน์ ์ํ์ ๊ฒ์ํ ๋ค ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ ๊ฒฐ๊ณผ'์ ํด๋นํ๋ ์์์ scheme, authority, path๋ง์ผ๋ก ๋ชจ๋ ํํํ๊ธฐ๋ ์ด๋ ค์.
- ์ฟผ๋ฆฌ ๋ฌธ์์ด(ํ๋ผ๋ฏธํฐ)์ ๋ฌผ์ํ(?)๋ก ์์๋๋ <ํค=๊ฐ> ํํ์ ๋ฐ์ดํฐ๋ก, ์ฐํผ์๋(&)๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ์ฟผ๋ฆฌ ๋ฌธ์์ด์ ์ฐ๊ฒฐํ ์ ์๋ค.
- fragment
- ์์์ ํ ์กฐ๊ฐ์ ๊ฐ๋ฆฌํค๊ธฐ ์ํ ์ ๋ณด.
- ํํ HTML ํ์ผ๊ณผ ๊ฐ์ ์์์์ ํน์ ๋ถ๋ถ์ ๊ฐ๋ฆฌํค๊ธฐ ์ํด ์ฌ์ฉ.
URN(Uniform Resource Name)
- URL์ ์์์ ์์น๊ฐ ๋ณํ๋ค๋ฉด ๋์ด์ ์ ํจํด์ง์ง ์์ ์ ์๋ค.
- ์์์ ๊ณ ์ ํ ์ด๋ฆ์ ๋ถ์ด๋ ์ด๋ฆ ๊ธฐ๋ฐ ์๋ณ์์ด๊ธฐ์ ์์์ ์์น์ ๋ฌด๊ดํ๊ฒ ์์์ ์๋ณํ ์ ์๋ค.
- ๋ค๋ง URN์ ์์ง URL๋งํผ ๋๋ฆฌ ์ฑํ๋ ๋ฐฉ์์ ์๋๊ธฐ์ ์์์ ์๋ณํ URI๋ก๋ URN๋ณด๋ค๋ URL์ด ๋ ๋ง์ด ์ฌ์ฉ๋๋ค.
05-2 HTTP (Hypertext Transfer Protocol)
HTTP๋ ์์ฉ ๊ณ์ธต์์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค.
HTTP์ ํน์ฑ
์์ฒญ-์๋ต ๊ธฐ๋ฐ ํ๋กํ ์ฝ
- HTTP๋ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ตฌ์กฐ ๊ธฐ๋ฐ์ ์์ฒญ-์๋ต ํ๋กํ ์ฝ์ด๋ค.
- ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก HTTP ์์ฒญ ๋ฉ์์ง์ HTTP ์๋ต ๋ฉ์์ง๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๊ตฌ์กฐ๋ก ๋์.
- ๊ฐ์ HTTP ๋ฉ์์ง์ผ์ง๋ผ๋ HTTP ์์ฒญ ๋ฉ์์ง์ HTTP ์๋ต ๋ฉ์์ง๋ ๋ฉ์์ง ํํ๊ฐ ๋ค๋ฅด๋ค.
๋ฏธ๋์ด ๋ ๋ฆฝ์ ํ๋กํ ์ฝ
- HTTP๋ ์์(HTTP๊ฐ ์์ฒญํ๋ ๋์)์ ํน์ฑ์ ์ ํํ์ง ์์ผ๋ฉฐ, ๋จ์ง ์์๊ณผ ์ํธ ์์ฉํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ธํฐํ์ด์ค๋ฅผ ์ ์ํ ๋ฟ์ด๋ค. ๋๋ถ๋ถ์ ์์์ URI๋ก ์๋ณ.(RFC 9110)
- ๋ฏธ๋์ด ํ์
(MIME ํ์
: Multipurpose Internet Mail Extensions)
- HTTP์์ ๋ฉ์์ง๋ก ์ฃผ๊ณ ๋ฐ๋ ์์์ ์ข ๋ฅ
- HTTP๋ฅผ ํตํด ์ก์์ ํ๋ ์ ๋ณด์ ์ข ๋ฅ๋ ๋ฏธ๋์ด ํ์ ์ผ๋ก ๋ํ๋ผ ์ ์๋ค.
- 'ํ์ /์๋ธํ์ ' ํ์์ผ๋ก ๊ตฌ์ฑ๋๋ค.(ํ์ : ๋ฐ์ดํฐ์ ์ ํ, ์๋ธํ์ : ์ฃผ์ด์ง ํ์ ์ ๋ํ ์ธ๋ถ ์ ํ)
- ๋ฏธ๋์ด ํ์ ์ ์ข ๋ฅ๋ ๋งค์ฐ ๋ค์ํ๋ฉฐ, ํ์์ ๋ฐ๋ผ ์๋ก์ด ๋ฏธ๋์ด ํ์ ์ ๋ฑ๋กํ ์๋ ์๋ค.
์คํ ์ดํธ๋ฆฌ์ค ํ๋กํ ์ฝ
- ์ํ๋ฅผ ์ ์งํ์ง ์๋๋ค.
- ์๋ฒ๊ฐ HTTP ์์ฒญ์ ๋ณด๋ธ ํด๋ผ์ด์ธํธ์ ๊ด๋ จ๋ ์ํ๋ฅผ ๊ธฐ์ตํ์ง ์๋๋ค๋ ์๋ฏธ.
- ํด๋ผ์ด์ธํธ์ ๋ชจ๋ HTTP ์์ฒญ์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ ๋ฆฝ์ ์ธ ์์ฒญ์ผ๋ก ๊ฐ์ฃผ.
- ์ํ๋ฅผ ์ ์งํ์ง ์๋ ํน์ฑ์ ํจ์จ์ ์ด์ง ์์ ๋ณด์ผ ์๋ ์์ง๋ง, ์ค์ ๋ก๋ ์ฅ์ ์ด ๋ ๋ช
ํํ๋ค.
- HTTP ์๋ฒ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ง์ ํด๋ผ์ด์ธํธ์ ๋์์ ์ํธ ์์ฉํ๊ธฐ ๋๋ฌธ์ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ์ ์งํ๋ ๊ฒ์ ์๋ฒ์ ํฐ ๋ถ๋ด์ด ๋๋ค.
- ์๋ฒ๊ฐ ์ฌ๋ฌ ๋๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ฐ, ๋ชจ๋ ์๋ฒ๊ฐ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ์์ ์ ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ๊ณ ๋ณต์กํด์ง๋ค.
- HTTP๊ฐ ์ํ๋ฅผ ์ ์งํ๋ ํ๋กํ ์ฝ์ด์๋ค๋ฉด ํด๋ผ์ด์ธํธ๋ ์์ ์ ์ํ๋ฅผ ๊ธฐ์ตํ๋ ํน์ ์๋ฒํ๊ณ ๋ง ์ํธ ์์ฉํ ์ ์๊ฒ ๋์ด, ํน์ ํด๋ผ์ด์ธํธ๊ฐ ํน์ ์๋ฒ์ ์ข ์๋ ์ ์๋ค.
- ํ์ฅ์ฑ(scalability)๊ณผ ๊ฒฌ๊ณ ์ฑ(robustness): HTTP์ ์ค๊ณ ๋ชฉํ
- ์ํ๋ฅผ ์ ์งํ์ง ์๋ ์คํ ์ดํธ๋ฆฌ์คํ ํน์ฑ์ ์ธ์ ๋ ์ฝ๊ฒ ์๋ฒ๋ฅผ ์ถ๊ฐํ ์ ์๊ธฐ ๋๋ฌธ์ ํ์ฅ์ฑ์ด ๋๊ณ , ์๋ฒ ์ค ํ๋์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ์ฝ๊ฒ ๋ค๋ฅธ ์๋ฒ๋ก ๋์ฒด๊ฐ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ ๊ฒฌ๊ณ ์ฑ์ด ๋๋ค.
์ง์ ์ฐ๊ฒฐ ํ๋กํ ์ฝ
- ๊ธฐ๋ณธ์ ์ผ๋ก HTTP๋ TCP ์์์ ๋์ํ๋๋ฐ, HTTP๋ ๋น์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ด์ง๋ง, TCP๋ ์ฐ๊ฒฐํ ํ๋กํ ์ฝ์ด๋ค.
- ์ด๊ธฐ์ HTTP ๋ฒ์ (HTTP 1.0 ์ดํ)์ ์ฐ๋ฆฌ ์จ์ด ํธ๋์
ฐ์ดํฌ๋ฅผ ํตํด TCP ์ฐ๊ฒฐ์ ์๋ฆฝํ ํ, ์์ฒญ์ ๋ํ ์๋ต์ ๋ฐ์ผ๋ฉด ์ฐ๊ฒฐ์ ์ข
๋ฃํ๋ ๋ฐฉ์์ผ๋ก ๋์.
- ๋น์ง์ ์ฐ๊ฒฐ: ์ถ๊ฐ์ ์ธ ์์ฒญ-์๋ต์ ํ๊ธฐ ์ํด์๋ ๋ค์ TCP ์ฐ๊ฒฐ์ ์๋ฆฝํด์ผ ํ๋ค.
- ์ต๊ทผ ์ฌ์ฉ๋๋ HTTP ๋ฒ์ (HTTP 1.1 ์ด์)์ ์ง์ ์ฐ๊ฒฐ(persistent connection, keep-alive)์ด๋ผ๋ ๊ธฐ์ ์ ์ ๊ณต.
- ํ๋์ TCP ์ฐ๊ฒฐ์์์ ์ฌ๋ฌ ๊ฐ์ ์์ฒญ-์๋ต์ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ๊ธฐ์ .
- ์ง์ ์ฐ๊ฒฐ ๊ธฐ๋ฅ์ ์ง์ํ๋ HTTP๋ ๋งค๋ฒ ์๋กญ๊ฒ ์ฐ๊ฒฐ์ ์๋ฆฝํ๊ณ ์ข ๋ฃํด์ผ ํ๋ ๋น์ง์ ์ฐ๊ฒฐ์ ๋นํด ๋ ๋น ๋ฅด๊ฒ ์ฌ๋ฌ HTTP ์์ฒญ๊ณผ ์๋ต์ ์ฒ๋ฆฌํ ์ ์๋ค.
HTTP ๋ฉ์์ง ๊ตฌ์กฐ (HTTP 1.1 ๋ฒ์ )
- HTTP ๋ฉ์์ง๋ ์์ ๋ผ์ธ, ํ๋ ๋ผ์ธ, ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- ํ๋ ๋ผ์ธ์ ์๊ฑฐ๋ ์ฌ๋ฌ ๊ฐ ์์ ์ ์๊ณ , ๋ฉ์์ง ๋ณธ๋ฌธ์ ์์ ์ ์๋ค.
- ํ๋ ๋ผ์ธ๊ณผ ๋ฉ์์ง ๋ณธ๋ฌธ ์ฌ์ด์๋ ๋น ์ค๋ฐ๊ฟ์ด ์๋ค.
์์๋ผ์ธ
- HTTP ์์ฒญ ๋ฉ์์ง์ผ ๊ฒฝ์ฐ ์์ ๋ผ์ธ: ์์ฒญ ๋ผ์ธ = ๋ฉ์๋ (๊ณต๋ฐฑ) ์์ฒญ ๋์ (๊ณต๋ฐฑ) HTTP ๋ฒ์ (์ค๋ฐ๊ฟ)
- ๋ฉ์๋
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์์์ ๋ํด ์ํํ ์์ ์ ์ข ๋ฅ๋ฅผ ๋ํ๋.
- ๋ํ์ ์ผ๋ก Get, Post, Put, Delete
- ์์ฒญ ๋์์ด ๊ฐ์๋ ๋ฉ์๋๊ฐ ๋ค๋ฅด๋ฉด ๊ฐ๊ธฐ ๋ค๋ฅธ ์์ฒญ์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
- ์์ฒญ ๋์
- HTTP ์์ฒญ์ ๋ณด๋ผ ์๋ฒ์ ์์์ ์๋ฏธ.
- ์ฟผ๋ฆฌ๊ฐ ํฌํจ๋ URI์ ๊ฒฝ๋ก๊ฐ ๋ช ์๋๋ค.
- HTTP ๋ฒ์
- ์ฌ์ฉ๋ HTTP ๋ฒ์
- HTTP/<๋ฒ์ > ์ด๋ผ๋ ํ๊ธฐ ๋ฐฉ์์ ๋ฐ๋ฅธ๋ค.
- ๋ฉ์๋
- HTTP ์๋ต ๋ฉ์์ง์ผ ๊ฒฝ์ฐ ์์ ๋ผ์ธ: ์ํ ๋ผ์ธ = HTTP ๋ฒ์ (๊ณต๋ฐฑ) ์ํ ์ฝ๋ (๊ณต๋ฐฑ) ์ด์ ๊ตฌ๋ฌธ (์ค๋ฐ๊ฟ)
- HTTP ๋ฒ์ (์์ ๊ฐ์)
- ์ํ ์ฝ๋
- ์์ฒญ์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ ์ธ ์๋ฆฌ ์ ์.
- ํด๋ผ์ด์ธํธ๋ ์ํ ์ฝ๋๋ฅผ ํตํด ์์ฒญ์ด ์ด๋ป๊ฒ ์ฒ๋ฆฌ๋์๋์ง ํ๋จ.
- ์ด์ ๊ตฌ๋ฌธ
- ์ํ ์ฝ๋์ ๋ํ ๋ฌธ์์ด ํํ์ ์ค๋ช .
- ex) HTTP/1.1 200 OK -> '์์ฒญ์ด ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์๋ค์ฌ์ง๊ณ ์ํ๋์์'
- ex) HTTP/1.1 404 Not Found -> '์์ฒญํ ์์์ด ์กด์ฌํ์ง ์์'
ํ๋ ๋ผ์ธ (ํค๋ ๋ผ์ธ)
- '0๊ฐ ์ด์'์ HTTP ํค๋(HTTP ํต์ ์ ํ์ํ ๋ถ๊ฐ ์ ๋ณด)๊ฐ ๋ช ์๋๋ค.
- ์ค์ ๋ก๋ ํ HTTP ๋ฉ์์ง์ ์์ฃผ ๋ค์ํ HTTP ํค๋๋ค์ด ์ฌ์ฉ๋๋ ๊ฒ์ด ์ผ๋ฐ์ ์ด๋ค.
- ๊ฐ HTTP ํค๋๋ ์ฝ๋ก (:)์ ๊ธฐ์ค์ผ๋ก ํค๋ ์ด๋ฆ๊ณผ ํ๋ ์ด์์ ํค๋ ๊ฐ์ผ๋ก ๊ตฌ์ฑ๋๋ค.(5-3์์ ์์ธํ)
๋ฉ์์ง ๋ณธ๋ฌธ
- HTTP ์์ฒญ ํน์ ์๋ต ๋ฉ์์ง์์ ๋ณธ๋ฌธ์ด ํ์ํ ๊ฒฝ์ฐ ๋ฉ์์ง ๋ณธ๋ฌธ์ ๋ช ์๋๋ค.
- ๋ฉ์์ง ๋ณธ๋ฌธ์ ์กด์ฌํ์ง ์์ ์๋ ์๊ณ , ๋ค์ํ ์ฝํ ์ธ ํ์ ์ด ์ฌ์ฉ๋ ์๋ ์๋ค.
HTTP ๋ฉ์๋
- GET
- ํน์ ์์์ ์กฐํํ ๋ ์ฌ์ฉ๋๋ ๋ฉ์๋.
- '์ด๊ฒ(์์)์ ๊ฐ์ ธ๋ค์ฃผ์ธ์'๋ผ๊ณ ์์ฒญ์ ๋ณด๋ด๋ ๊ฒ.
- ๊ฐ์ฅ ํํ ์ฌ์ฉ๋๋ ๋ฉ์๋ ์ค ํ๋์ด๋ฉฐ, ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์กฐํํ๋ ์์์ ๋๋ถ๋ถ GET ์์ฒญ ๋ฉ์์ง์ ๋ํ ์๋ต.
- Host ํค๋์๋ ์์ฒญ์ ๋ณด๋ผ ํธ์คํธ๊ฐ ๋ช ์๋๋ค.
- GET ์์ฒญ ๋ฉ์์ง๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ฒ๋ฆฌ๋์๋ค๋ฉด ์ด์ ๋ํ ์๋ต์ผ๋ก์ ์์ฒญํ ์์์ ์ ๋ฌ๋ฐ๋๋ค.
- GET ๋ฉ์๋์ ์์ฒญ ๋ฉ์์ง ๋ณธ๋ฌธ์ ํฌํจ์ํค๋ ๊ฒ์ ๋ฐ๋์งํ์ง ์๋ค. GET ์์ฒญ ๋ฉ์์ง์์๋ ๋ฉ์์ง ๋ณธ๋ฌธ๋ณด๋ค ์ฟผ๋ฆฌ ๋ฌธ์์ด์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค.
- HEAD
- ์ฌ์ค์ GET ๋ฉ์๋์ ๋์ผํ ์ญํ .
- ์ฐจ์ด์ ์ ์๋ต ๋ฉ์์ง์ ๋ฉ์์ง ๋ณธ๋ฌธ์ด ํฌํจ๋์ง ์๋๋ค๋ ๊ฒ.
- HEAD ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ๋ ์์ฒญ์ ๋ํ ์๋ต์ผ๋ก ์๋ต ๋ฉ์์ง์ ํค๋๋ง ๋ฐํ.
- POST
- ์๋ฒ๋ก ํ์ฌ๊ธ ํน์ ์์ ์ ์ฒ๋ฆฌํ๋๋ก ์ฒ๋ฆฌํ๋๋ก ์์ฒญํ๋ ๋ฉ์๋.
- '์ด๊ฒ์ ์ฒ๋ฆฌํด ์ฃผ์ธ์'๋ผ๋ ์์ฒญ.
- ์ฒ๋ฆฌํ ๋์์ ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ๋ช ์.
- ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ์๋ก์ด ์์์ ์์ฑํ๊ณ ์ ํ ๋ ์ฌ์ฉ๋๋ค.
- ์๋ก์ด ์์์ด ์์ฑ๋๋ฉด ์๋ฒ๋ ์๋ต ๋ฉ์์ง์ Location ํค๋๋ฅผ ํตํด ์์ฑ๋ ์์์ ์์น๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์๋ ค ์ค ์ ์๋ค.
- PUT
- '๋ฎ์ด์ฐ๊ธฐ'๋ฅผ ์์ฒญํ๋ ๋ฉ์๋.
- ์์ฒญ ์์์ด ์๋ค๋ฉด ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ์์์ ์๋กญ๊ฒ ์์ฑํ๋ค.
- ์ด๋ฏธ ์์์ด ์กด์ฌํ๋ค๋ฉด ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ์์์ ์์ ํ ๋์ฒดํ๋ค.
- PATCH
- PUT ๋ฉ์๋๊ฐ ์์ ํ ๋์ฒด์ ๊ฐ๊น๋ค๋ฉด PATCH ๋ฉ์๋๋ ๋ถ๋ถ์ ์์ ์ ๊ฐ๊น๋ค.
- ๋ฉ์์ง ๋ณธ๋ฌธ์ ๋ง๊ฒ ์์์ด ์ผ๋ถ ์์ ๋๋ค.
- DELETE
- ํน์ ์์์ ์ญ์ ํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋.
HTTP ์ํ ์ฝ๋
- ์ํ ์ฝ๋์ ์ข ๋ฅ๋ ๋ฐฑ์ ์๋ฆฌ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ์ ๊ตฌ๋ถํ๋ค.
200๋ฒ๋: ์ฑ๊ณต ์ํ ์ฝ๋
- ์์ฒญ์ด ์ฑ๊ณตํ์์ ์๋ฏธ.
- 200(OK)
- ์๋ฒ๊ฐ ์์ฒญ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฐ์๋ค์ด๊ณ ์ฒ๋ฆฌํ ๊ฒฝ์ฐ, ์๋ฒ๋ ์์ฒญํ ์์๊ณผ ํจ๊ป ์ํ ์ฝ๋๋ฅผ ํฌํจํ ์๋ต์ ํ ์ ์๋ค.
- 201(Created)
- POST ์์ฒญ์ ํตํด ์๋ฒ์ ์๋ก์ด ์์์ ์์ฑํ ๊ฒฝ์ฐ, ์์ฒญ์ด ์ฑ๊ณตํ์ผ๋ฉฐ ์๋ก์ด ์์์ด ๋ง๋ค์ด์ก์์ ์๋ฆด ์ ์๋ค.
- 202(Accepted)
- ์์ฒญ์ ์ ๋ฐ์์ผ๋, ์์ง ์์ฒญํ ์์ ์ ๋๋ด์ง ์์์์ ์๋ฏธ.
- ์์ ์๊ฐ์ด ๊ธด ๋์ฉ๋ ํ์ผ ์ ๋ก๋ ์์ ๊ณผ ๊ฐ์ด ์์ฒญ ๊ฒฐ๊ณผ๋ฅผ ๊ณง๋ฐ๋ก ์๋ตํ๊ธฐ ์ด๋ ค์ด ์ํฉ.
- 204(No Content)
- ์์ฒญ ๋ฉ์์ง์ ๋ํด ์ฑ๊ณต์ ์ผ๋ก ์์ ์ ์๋ฃํ๋๋ผ๋ ๋ง๋ ํ ๋ฉ์์ง ๋ณธ๋ฌธ์ผ๋ก ํ๊ธฐํ ๊ฒ์ด ์์ ๊ฒฝ์ฐ.
300๋ฒ๋: ๋ฆฌ๋ค์ด๋ ์ ์ํ ์ฝ๋
- ๋ฆฌ๋ค์ด๋ ์
: ์์ฒญ์ ์์ํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์กฐ์น๊ฐ ํ์ํ ์ํ.
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์์์ด '๋ค๋ฅธ ๊ณณ'์ ์์ ๋, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ '๋ค๋ฅธ ๊ณณ'์ผ๋ก ์ด๋์ํค๋ ๊ฒ.
- ๋ค๋ฅธ ๊ณณ์ URL์ด ๋ ์๋ ์๊ณ , ์บ์๊ฐ ๋ ์๋ ์๋ค.
- ์บ์์ ๊ด๋ จ๋ ์ํ ์ฝ๋ 304(Not Modified) - ์์์ด ๋ณ๊ฒฝ๋์ง ์์์
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์์์ด ๋ค๋ฅธ URL์ ์์ ๊ฒฝ์ฐ, ์๋ฒ๋ ์๋ต ๋ฉ์์ง์ Location ํค๋๋ฅผ ํตํด ์์ฒญํ ์์์ด ์์นํ URL ์๋ด.
- ์ด๋ฅผ ์์ ํ ํด๋ผ์ด์ธํธ๋ Location ํค๋์ ๋ช ์๋ URL๋ก ์ฆ์ ์ฌ์์ฒญ์ ๋ณด๋ด์ด ์๋ก์ด URL์ ๋ํ ์๋ต์ ๋ฐ๊ฒ ๋๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์์์ด '๋ค๋ฅธ ๊ณณ'์ ์์ ๋, ํด๋ผ์ด์ธํธ์ ์์ฒญ์ '๋ค๋ฅธ ๊ณณ'์ผ๋ก ์ด๋์ํค๋ ๊ฒ.
- ์๊ตฌ์ ์ธ ๋ฆฌ๋ค์ด๋ ์
(permanent redirection)
- ์์์ด ์์ ํ ์๋ก์ด ๊ณณ์ผ๋ก ์ด๋ํ์ฌ ๊ฒฝ๋ก๊ฐ ์๊ตฌ์ ์ผ๋ก ์ฌ์ง์ ๋๋ ๊ฒ.
- ๊ธฐ์กด์ URL์ ์์ฒญ์ ๋ฉ์์ง๋ฅผ ๋ณด๋ด๋ฉด ํญ์ ์๋ก์ด URL๋ก ๋ฆฌ๋ค์ด๋ ํธ๋๋ค.
- ์๋ฒ๊ฐ ๋๋ฉ์ธ์ ์ด์ ํ๋ ๋ฑ ์น ์ฌ์ดํธ์ ํฐ ๊ฐํธ์ด ์์ ๋ ์ ํ ์ ์๋ค.
- 301(Moved Permanently)
- ์๋ฒ์ POST ๋ฉ์๋๋ก ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ณด๋์ ๋ 301 ์๋ต ๋ฉ์์ง๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด๋ ๋ ๋ฒ์งธ ์์ฒญ ๋ฉ์๋๋ GET ์์ฒญ์ผ๋ก ๋ฐ๋'์๋' ์๋ค.
- 308(Permanent Redirect)
- ์๋ฒ์ POST ๋ฉ์๋๋ก ์์ฒญ ๋ฉ์์ง๋ฅผ ๋ณด๋์ ๋ 308 ์๋ต ๋ฉ์์ง๋ฅผ ๋ฐ๋ ๊ฒฝ์ฐ
- ํด๋ผ์ด์ธํธ๊ฐ ๋ณด๋ด๋ ๋ ๋ฒ์งธ ์์ฒญ ๋ฉ์๋๋ POST ๋ฉ์๋๋ฅผ ์ ์งํ๋ค.
- 301๊ณผ 308์ ์ฐจ์ด๋ ํด๋ผ์ด์ธํธ์ ์ฌ์์ฒญ ๋ฉ์๋ ๋ณ๊ฒฝ ์ฌ๋ถ์ด๋ค.
- ์ผ์์ ์ธ ๋ฆฌ๋ค์ด๋ ์
(temporary redirection)
- ์์์ ์์น๊ฐ ์์๋ก ๋ณ๊ฒฝ๋์๊ฑฐ๋ ์์๋ก ์ฌ์ฉํ URL์ด ํ์ํ ๊ฒฝ์ฐ์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
- ์ด๋ค URL์ ๋ํด ์ผ์์ ์ธ ๋ฆฌ๋ค์ด๋ ์ ๊ด๋ จ ์ํ ์ฝ๋๋ฅผ ์๋ต ๋ฐ์๋ค๋ฉด, ์์ฒญ์ ๋ณด๋ธ URL์ ๊ธฐ์ตํด์ผ ํ๋ค.
- 302(Found)
- 301๊ณผ ์ ์ฌ.
- ์์ฒญํ ์์์ด '์์๋ก' ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ด๋ํ์.
- GET์ด ์๋ ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ ํด๋ผ์ด์ธํธ๊ฐ ์ํ ์ฝ๋ 302๋ฅผ ์๋ต๋ฐ์ ๊ฒฝ์ฐ, ๋ ๋ฒ์งธ ์์ฒญ ๋ฉ์๋๋ GET์ผ๋ก ๋ฐ๋'์๋' ์๋ค.
- 303(See Other)
- ๋ ๋ฒ์งธ ์์ฒญ ๋ฉ์๋๋ฅผ GET์ผ๋ก ๋ฐ๊ฟ ์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- 307(Temporary Redirect)
- 308๊ณผ ์ ์ฌ.
- 301์ ์ ๋งค๋ชจํธํจ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ํ ์ฝ๋๊ฐ 308์ธ ๊ฒ์ฒ๋ผ 302์ ์ ๋งค๋ชจํธํจ์ ํด๊ฒฐํ๊ธฐ ์ํ ์ํ ์ฝ๋๋ 307.
- ๋ ๋ฒ์งธ ์์ฒญ ๋ฉ์๋๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ ์ํ ์ฝ๋.
400๋ฒ๋: ํด๋ผ์ด์ธํธ ์๋ฌ ์ํ ์ฝ๋
- ํด๋ผ์ด์ธํธ์ ์ํ ์๋ฌ๊ฐ ์์์ ์๋ ค ์ฃผ๋ ์ํ ์ฝ๋.
- ์๋ฒ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ํํ๋ก ์์ฒญ์ ๋ณด๋๊ฑฐ๋, ์กด์ฌํ์ง ์๋ ์์์ ๋ํด ์์ฒญ์ ๋ณด๋ด๋ ๊ฒฝ์ฐ.
- 400(Bad Request)
- ํด๋ผ์ด์ธํธ์ ์์ฒญ์ด ์๋ชป๋์์์ ์๋ ค ์ฃผ๋ ์ํ ์ฝ๋
- ํด๋ผ์ด์ธํธ ์์ฒญ ๋ฉ์์ง์ ๋ด์ฉ์ด๋ ํ์ ์์ฒด์ ๋ฌธ์ ๊ฐ ์์ด ์๋ฒ๊ฐ ์์ฒญ ๋ฉ์์ง๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒฝ์ฐ.
- 401(Unauthorized)
- ์น ์์์ ์ ๋ณด๋ฅผ ๊ฒ์ํ ๋ ๋ชจ๋ ์์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ ๊ฒ์ ์๋๋ค. ๋๋ก๋ ํน์ ์์์ ์ ๊ทผํ๊ธฐ ์ํด ์ธ์ฆ์ด ํ์ํ ๋๊ฐ ์๋ค.
- 401๋ก ์๋ตํ ๋๋ ๋ฐ๋์ WWW-Authenticate๋ผ๋ ํค๋๋ฅผ ํตํด ์ธ์ฆ ๋ฐฉ๋ฒ์ ์๋ ค ์ฃผ์ด์ผ ํ๋ค.
- 403(Forbidden)
- ํด๋ผ์ด์ธํธ์ ๊ถํ์ด ์ถฉ๋ถํ์ง ์์ ๋.
- '์์์ ์ ๊ทผํ ๊ถํ์ด ์์'์ ์๋ฏธ.
- 401์ ์ธ์ฆ์ด๋, '์์ ์ด ๋๊ตฌ์ธ์ง ์ฆ๋ช ํ๋ ๊ฒ'์ ์๋ฏธํ๊ณ , ๊ถํ ๋ถ์ฌ๋ '์ธ์ฆ๋ ์ฃผ์ฒด์๊ฒ ์์ ์ ํ์ฉํ๋ ๊ฒ'์ ์๋ฏธ.
- 404(Not Found)
- ์ ๊ทผํ๊ณ ์ ํ๋ ์์์ด ์กด์ฌํ์ง ์์์ ์๋ฆฌ๋ ์ํ ์ฝ๋.
- ์กด์ฌํ๋๋ผ๋ ๊ณต๊ฐํ์ง ์๋ ์์์ ๋ํด ์๋ตํ๋ ๊ฒฝ์ฐ๋ ์๋ค.
- 405(Method Not Allowed)
- ๊ตฌํ๋์ง ์์ ๋ฉ์๋๋ก ์์ฒญ์ ๋ณด๋์ ๊ฒฝ์ฐ ํด๋น ๋ฉ์๋์ ๋ฏธ์ง์์ ์๋ฆฐ๋ค.
500๋ฒ๋: ์๋ฒ ์๋ฌ ์ํ ์ฝ๋
- ํด๋ผ์ด์ธํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์์ฒญ์ ๋ณด๋์์ง๋ผ๋ ๋ฐ์ํ ์ ์๋ ์๋ฒ ์๋ฌ์ ๋ํ ์ํ ์ฝ๋
- 500(Internal Server Error)
- 500๋ฒ๋์์ ๊ฐ์ฅ ์์ฃผ ์ฌ์ฉ๋๋ ์ํ ์ฝ๋.
- '์๋ฒ์ ์๊ธฐ์น ๋ชปํ ์ํฉ์ผ๋ก ์ธํด ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์์'์ ์๋ฏธ.
- ์๋ฒ ๋ด ์๋ฌ๋ฅผ ํต์นญํ๊ธฐ๋ ํ๋ค.
- 502(Bad Gateway)
- ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์์นํ ์ค๊ฐ ์๋ฒ์ ํต์ ์ค๋ฅ๋ฅผ ๋ํ๋ด๋ ์ํ ์ฝ๋
- ๊ฒ์ดํธ์จ์ด๋ฅผ ๋น๋กฏํ ์ฌ๋ฌ ์ค๊ฐ ์๋ฒ๊ฐ ์ ํจํ์ง ์๊ฑฐ๋ ์๋ชป๋ ์๋ต์ ๋ฐ์ ๊ฒฝ์ฐ
- 503(Service Unavailable)
- ํ์ฌ ์๋น์ค๋ฅผ ์ผ์์ ์ผ๋ก ์ด์ฉํ ์ ์์.
- ์๋ฒ๊ฐ ๊ณผ๋ถํ ์ํ์ ์๊ฑฐ๋ ์ผ์์ ์ธ ์ ๊ฒ ์ํ์ผ ๋ ๋ณผ ์ ์๋ ์ํ.
05-3 HTTP ํค๋์ HTTP ๊ธฐ๋ฐ ๊ธฐ์
HTTP ํค๋
์์ฒญ ์ ํ์ฉ๋๋ ํค๋
- Host
- ์์ฒญ์ ๋ณด๋ผ ํธ์คํธ๋ฅผ ๋ํ๋ด๋ ํค๋.
- ์ฃผ๋ก ๋๋ฉ์ธ ๋ค์์ผ๋ก ๋ช ์๋๋ฉฐ, ํฌํธ ๋ฒํธ๊ฐ ํฌํจ๋์ด ์์ ์ ์๋ค.
- User-Agent
- Host ํค๋์ ๋๋ถ์ด HTTP ์์ฒญ ๋ฉ์์ง์์ ๊ฐ์ฅ ํํ ๋ณผ ์ ์๋ ํค๋ ์ค ํ๋.
- Host: info.cern.ch
- ์น ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ด HTTP ์์ฒญ์ ์์ํ๋ ํด๋ผ์ด์ธํธ ์ธก์ ํ๋ก๊ทธ๋จ์ ์๋ฏธ.
- ์ด์์ฒด์ ๋ฐ ์ํคํ ์ฒ ์ ๋ณด, ๋ธ๋ผ์ฐ์ ์ข ๋ฅ ๋ฐ ๋ฒ์ , ๋ ๋๋ง ์์ง๊ณผ ๊ฐ์ ๋ค์ํ ์ ๋ณด๊ฐ ํฌํจ.
- ์๋ฒ ์ ์ฅ์์๋ User-Agent ํค๋๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์ ์ ์ ํ๊ฒฝ์ ์ ์ถํ ์ ์๋ค.
- Host ํค๋์ ๋๋ถ์ด HTTP ์์ฒญ ๋ฉ์์ง์์ ๊ฐ์ฅ ํํ ๋ณผ ์ ์๋ ํค๋ ์ค ํ๋.
- Referer
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋ ๋จธ๋ฌด๋ฅด๊ณ ์๋ URL์ด ๋ช
์.
- Referer: https://en.wikipedia.org/
- ํด๋ผ์ด์ธํธ์ ์ ์ ๊ฒฝ๋ก๋ฅผ ํ์ ํ ์ ์๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญ์ ๋ณด๋ผ ๋ ๋จธ๋ฌด๋ฅด๊ณ ์๋ URL์ด ๋ช
์.
- Authorization
- ํด๋ผ์ด์ธํธ์ ์ธ์ฆ ์ ๋ณด๋ฅผ ๋ด๋ ํค๋.
- ์ธ์ฆ ํ์
(type)๊ณผ ์ธ์ฆ์ ์ํ ์ ๋ณด(credentials)๊ฐ ์ฐจ๋ก๋ก ๋ช
์๋๋ค.
- Authorization: <type> <credentials>
- ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ HTTP ์ธ์ฆ ํ์ ์ Basic ํ์ ์ผ๋ก, Base64(๋ฌธ์๋ฅผ ์ฝ๋๋ก ๋ณํํ๋ ๋ฐฉ๋ฒ) ์ธ์ฝ๋ฉํ ๊ฐ์ ์ธ์ฆ ์ ๋ณด๋ก ์ผ๋๋ค.
์๋ต ์ ํ์ฉ๋๋ ํค๋
- Server
- ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ ์ธก์ ์ํํธ์จ์ด์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ช
์.
- Server: Apache/2.4.1 (Unix)
- 'Unix ์ด์์ฒด์ ์์ ๋์ํ๋ ์ํ์น HTTP ์๋ฒ' ๋ผ๋ ์๋ฏธ
- ์์ฒญ์ ์ฒ๋ฆฌํ๋ ์๋ฒ ์ธก์ ์ํํธ์จ์ด์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ช
์.
- Allow
- ํด๋ผ์ด์ธํธ์๊ฒ ํ์ฉ๋ HTTP ๋ฉ์๋ ๋ชฉ๋ก์ ์๋ ค ์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
- ์ํ ์ฝ๋ 405(Method Not Allowed)๋ฅผ ์๋ตํ๋ ๋ฉ์์ง์์ Allow ํค๋๊ฐ ํจ๊ป ์ฌ์ฉ๋๋ค.
- Retry-After
- ์ํ ์ฝ๋ 503(Service Unavailable)์ ํจ๊ป ์ฌ์ฉ๋๋ ํค๋๋ก, ์์์ ์ฌ์ฉํ ์ ์๋ ๋ ์ง ํน์ ์๊ฐ์ ๋ํ๋ธ๋ค.
- Retry-After: Fri, 23 Aug 2024 09:00:00 GMT
- Retry-After: 120
- ์ํ ์ฝ๋ 503(Service Unavailable)์ ํจ๊ป ์ฌ์ฉ๋๋ ํค๋๋ก, ์์์ ์ฌ์ฉํ ์ ์๋ ๋ ์ง ํน์ ์๊ฐ์ ๋ํ๋ธ๋ค.
- Location
- ํด๋ผ์ด์ธํธ์๊ฒ ์์์ ์์น๋ฅผ ์๋ ค์ฃผ๊ธฐ ์ํด ์ฌ์ฉ๋๋ ํค๋.
- ์ฃผ๋ก ๋ฆฌ๋ค์ด๋ ์ ์ด ๋ฐ์ํ์ ๋๋ ์๋ก์ด ์์์ด ์์ฑ๋์์ ๋ ์ฌ์ฉ๋๋ค.
- WWW-Authenticate
- ์ํ ์ฝ๋ 401(Unauthorized)๊ณผ ํจ๊ป ์ฌ์ฉ๋๋ ํค๋.
- ์์์ ์ ๊ทผํ๊ธฐ ์ํ ์ธ์ฆ ๋ฐฉ์์ ์ค๋ช
ํ๋ ํค๋๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ณด์ ์์ญ(realm)์ ํจ๊ป ์๋ ค์ฃผ๊ฑฐ๋ ์ธ์ฆ์ ์ฌ์ฉ๋ ๋ฌธ์์งํฉ(charset)๋ ์๋ ค ์ค ์ ์๋ค.
- WWW-Authenticate: Basic realm="Access to engineering site", charset="UTF-8"
์์ฒญ๊ณผ ์๋ต ๋ชจ๋์์ ํ์ฉ๋๋ ํค๋
- Date
- ๋ฉ์์ง๊ฐ ์์ฑ๋ ๋ ์ง์ ์๊ฐ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ด์ ํค๋.
- Date: Tue, 15 Nov 1994 08:12:31 GMT
- ๋ฉ์์ง๊ฐ ์์ฑ๋ ๋ ์ง์ ์๊ฐ์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ๋ด์ ํค๋.
- Connection
- ํด๋ผ์ด์ธํธ์ ์์ฒญ๊ณผ ์๋ต ๊ฐ์ ์ฐ๊ฒฐ ๋ฐฉ์์ ์ค์ ํ๋ ํค๋.
- ์ง์ ์ฐ๊ฒฐ(keep-alive)์ด Connection์ ๋ช
์๋๋ ๋ํ์ ์ธ ์ฐ๊ฒฐ ๋ฐฉ์.
- Connection: keep-alive
- ์ฐ๊ฒฐ์ ์ข
๋ฃํ๊ณ ์ถ์ ๋
- Connection: close
- Content-Length
- ๋ณธ๋ฌธ์ ๋ฐ์ดํธ ๋จ์ ํฌ๊ธฐ(๊ธธ์ด)๋ฅผ ๋ํ๋ธ๋ค.
- Content-Length: 100
- ๋ณธ๋ฌธ์ ๋ฐ์ดํธ ๋จ์ ํฌ๊ธฐ(๊ธธ์ด)๋ฅผ ๋ํ๋ธ๋ค.
- Content-Type, Content-Language, Content-Encoding
- ์ด ํค๋๋ค์ ์ ์กํ๋ ค๋ ๋ฉ์์ง ๋ณธ๋ฌธ์ ํํ ๋ฐฉ์์ ์ค๋ช ํ๋ ํค๋.
- ํํ ํค๋(representation header)์ ์ผ์ข ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
- Content-Type ํค๋๋ ๋ฉ์์ง ๋ณธ๋ฌธ์์ ์ฌ์ฉ๋ ๋ฏธ๋์ด ํ์
์ ๋ด๊ณ ์๋ค.
- Content-Type: text/html; charset=UTF-8
- ๋ฉ์์ง ๋ณธ๋ฌธ์ด HTML ๋ฌธ์ ํ์์ด๋ฉฐ, ๋ฌธ์ ์ธ์ฝ๋ฉ์ผ๋ก UTF-8์ ์ฌ์ฉํ๋ค๋ ์ ๋ณด๋ฅผ ์๋ ค์ค.
- Content-Language ํค๋๋ ๋ฉ์์ง ๋ณธ๋ฌธ์ ์ฌ์ฉ๋ ์์ฐ์ด๋ฅผ ์ธ์ด ํ๊ทธ๋ก ๋ช
์.
- ์ฒซ ๋ฒ์งธ ์๋ธ ํ๊ทธ๋ ์ธ์ด ์ฝ๊ทธ๋ก, ํน์ ์ธ์ด๋ฅผ ์๋ฏธํ๋ ์ธ์ด ์ฝ๋๊ฐ ๋ช
์๋๋ค.
- ex) ko, en, zh, ja, de, fr
- ๋ ๋ฒ์งธ ์๋ธ ํ๊ทธ๋ ๊ตญ๊ฐ ์ฝ๋๋ก, ํน์ ๊ตญ๊ฐ๋ฅผ ์๋ฏธํ๋ ๊ตญ๊ฐ ์ฝ๋๊ฐ ๋ช
์๋๋ค.
- ex) KR, US, CN, JP, DE, FR, GB, TW
- ์ฒซ ๋ฒ์งธ ์๋ธ ํ๊ทธ๋ ์ธ์ด ์ฝ๊ทธ๋ก, ํน์ ์ธ์ด๋ฅผ ์๋ฏธํ๋ ์ธ์ด ์ฝ๋๊ฐ ๋ช
์๋๋ค.
- Content-Encoding ํค๋์๋ ๋ฉ์์ง ๋ณธ๋ฌธ์ ์์ถํ๊ฑฐ๋ ๋ณํํ ๋ฐฉ์์ด ๋ช
์.
- ์์ ์ธก์ ์ด ํค๋๋ฅผ ํตํด ์์ถ ๋ฐ ๋ณํ ๋ฐฉ์์ ์ธ์ํ๊ณ , ์์ถ์ ํด์ ํ๊ฑฐ๋ ์๋ฌธ์ผ๋ก ์ฌ๋ณํํ์ฌ ๋ณธ๋ฌธ ๋ด์ฉ์ ํ์ธํ ์ ์๋ค.
์บ์(cache)
- ๋ถํ์ํ ๋์ญํญ ๋ญ๋น์ ์๋ต ์ง์ฐ์ ๋ฐฉ์งํ๊ธฐ ์ํด ์ ๋ณด์ ์ฌ๋ณธ์ ์์๋ก ์ ์ฅํ๋ ๊ธฐ์ ์ด๋ค.
- ์ฌ๋ณธ์ ์์๋ก ์ ์ฅํด ๋๋ฉด ๋์ผํ ์์ฒญ์ ๋ํด ์บ์๋ ๋ฐ์ดํฐ๋ฅผ ํ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ถํ์ํ ๋์ญํญ ๋ญ๋น๋ฅผ ์ค์ผ ์ ์๊ณ , ๋ ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ์ ์ ๊ทผํ ์ ์๋ค.
- ๊ฐ์ธ ์ ์ฉ ์บ์: ์บ์๊ฐ ์น ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ๋์ด ์๋ ๊ฒฝ์ฐ.
- ๊ณต์ฉ ์บ์: ํด๋ผ์ด์ธํธ์ ์๋ฒ ์ฌ์ด์ ์์นํ ์ค๊ฐ ์๋ฒ์ ์ ์ฅ๋์ด ์๋ ๊ฒฝ์ฐ.
- ์บ์ ๋ฐ์ดํฐ์ ์ ํจ ๊ธฐ๊ฐ์ ์ค์ ํ๊ณ , ๊ธฐ๊ฐ์ด ๋ง๋ฃ๋์๋ค๋ฉด ์๋ณธ ๋ฐ์ดํฐ๋ฅผ ๋ค์ ์์ฒญํ๋ ๋ฐฉ์์ผ๋ก ์บ์ ์ ์ ๋๋ฅผ ์ ์งํ ์ ์๋ค.
- Expires ํค๋์ Cache-Control ํค๋์ Max-Age ๊ฐ(์ด)์ ์ฌ์ฉํ๋ค.
- ์บ์๊ฐ ๋ง๋ฃ๋์๋๋ผ๋ ์บ์๋ ์์์ด ์ฌ์ ํ ์ต์ ์ ๋ณด๋ผ๋ฉด ํด๋ผ์ด์ธํธ๋ ๊ตณ์ด ์๋ฒ๋ก๋ถํฐ ๊ฐ์ ์์์ ์๋ต๋ฐ์ง ์๊ณ , ์บ์๋ ์์์ ์ ํจ๊ธฐ๊ฐ์ ์ฐ์ฅํ์ฌ ์ด์ฉํ๋ฉด ๋๋ค.
- ์บ์์ ์ ์ ๋๋ฅผ ์ฌ๊ฒ์ฌํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
- ๋ ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ์๊ฒ ๋ฌผ์ด๋ณด๋ ๋ฐฉ๋ฒ
- ํด๋ผ์ด์ธํธ๋ If-Modified-Since ํค๋๋ฅผ ํตํด ์๋ฒ์๊ฒ ํน์ ์์ ์ดํ๋ก ์๋ณธ ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ์์๋์ง ๋ฌผ์ด๋ณธ๋ค.
- ์๋ณธ์ ๋ณ๊ฒฝ์ด ์๋ค๋ฉด ์ ์์์ผ๋ก ์๋ตํ๋๋ก ์๋ฒ์ ์์ฒญ.
- ์ํฐํฐ ํ๊ทธ(Etag)๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ์๊ฒ ๋ถ์ด๋ณด๋ ๋ฐฉ๋ฒ
- Etag๋ ์์์ ๋ฒ์ ์ ์๋ณํ๊ธฐ ์ํ ์ ๋ณด
- ์์์ด ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์์์ ๋ฒ์ ์ ์๋ณํ๋ Etag ๊ฐ์ด ๋ณ๊ฒฝ๋๋ค.
- ํด๋ผ์ด์ธํธ๋ If-None-Match ํค๋๋ฅผ ํตํด ์๋ฒ์๊ฒ Etag ๊ฐ๊ณผ ์ผ์นํ๋ ์์์ด ์๋์ง ๋ฌผ์ด๋ณธ๋ค.
- Etag ๊ฐ์ด ๋ณ๊ฒฝ๋์๋ค๋ฉด ์ ์์์ผ๋ก ์๋ตํ๋๋ก ์๋ฒ์ ์์ฒญ.
- ๋ ์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ฒ์๊ฒ ๋ฌผ์ด๋ณด๋ ๋ฐฉ๋ฒ
์ฟ ํค
- ์๋ฒ์์ ์์ฑ๋์ด ํด๋ผ์ด์ธํธ ์ธก์ ์ ์ฅ๋๋ ๋ฐ์ดํฐ๋ก, ์ํ๋ฅผ ์ ์งํ์ง ์๋ HTTP์ ํน์ฑ์ ๋ณด์ํ๊ธฐ ์ํ ์๋จ.
- ์ฟ ํค๋ ๊ธฐ๋ณธ์ ์ผ๋ก <์ด๋ฆ, ๊ฐ> ์์ ํํ๋ฅผ ๋ ๊ณ ์๊ณ , ์ถ๊ฐ๋ก ์ ์ฉ ๋ฒ์์ ๋ง๋ฃ ๊ธฐ๊ฐ ๋ฑ ๋ค์ํ ์์ฑ์ ๊ฐ์ง ์ ์๋ค.
- ์๋ฒ๋ ์ฟ ํค๋ฅผ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๊ณ , ํด๋ผ์ด์ธํธ๋ ์ ๋ฌ๋ฐ์ ์ฟ ํค๋ฅผ ์ ์ฅํด ๋์๋ค๊ฐ ์ถํ ๋์ผํ ์๋ฒ์ ๋ณด๋ด๋ ์์ฒญ ๋ฉ์์ง์ ์ฟ ํค๋ฅผ ํฌํจํ์ฌ ์ ์กํ๋ค.
- ์๋ฒ๋ ์ฟ ํค ์ ๋ณด๋ฅผ ์ฐธ๊ณ ํด ๋ ๊ฐ์ ์์ฒญ์ด ๊ฐ์ ํด๋ผ์ด์ธํธ์์ ์๋์ง, ๋ก๊ทธ์ธ ์ํ๋ฅผ ์ ์งํ๊ณ ์๋์ง ๋ฑ์ ์ ์ ์๋ค.
- ์๋ต ๋ฉ์์ง์ Set-Cookie ํค๋์ ์์ฒญ ๋ฉ์์ง์ Cookie ํค๋๋ฅผ ํตํด ์ ๋ฌ๋๋ค.
- Set-Cookie: ์ด๋ฆ=๊ฐ; ์์ฑ1; ์์ฑ2
- ์ฟ ํค๋ฅผ ์ด๋ฃจ๋ ์ ๋ณด๋ก๋ ์ด๋ฆ๊ณผ ๊ทธ์ ๋์๋๋ ๊ฐ๋ฟ ์๋๋ผ ๋๋ฉ์ธ๊ณผ ๊ฒฝ๋ก, ์ ํจ ๊ธฐ๊ฐ, ๋ณด์ ๊ด๋ จ ์์ฑ์ด ์๋ค.
- ์ฟ ํค์ ๋ํ์ ์ธ ํ๊ณ๋ ๋ณด์์ด๋ค. ์ฟ ํค ์ ๋ณด๊ฐ ์ฝ๊ฒ ๋ ธ์ถ๋๊ฑฐ๋ ์กฐ์๋ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
- ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ์์ฑ์ผ๋ก Secure์ HttpOnly๋ผ๋ ์์ฑ์ด ์๋ค.
- Secure๋ HTTPS ํ๋กํ ์ฝ์ด ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ง ์ฟ ํค๋ฅผ ์ ์ก๋๋๋ก ํ๋ ์์ฑ.
- HttpsOnly๋ HTTP ์ก์์ ์ ํตํด์๋ง ์ฟ ํค๋ฅผ ์ด์ฉํ๋๋ก ์ ํํ๋ ์์ฑ.
- ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฟ ํค๋ฅผ ์ค๊ฐ์ ๊ฐ๋ก์ฑ๊ฑฐ๋ ์๋ณ์กฐ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์ฟ ํค์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํจ.
์ธ์ ์ธ์ฆ
์ฟ ํค๋ฅผ ํตํด ์ ๋ฌ๋๋ ๋ํ์ ์ธ ์ ๋ณด๋ก ์ธ์ ์์ด๋(session id)๊ฐ ์๋ค.
์ธ์ ์์ด๋๋ฅผ ์ดํดํ๊ธฐ ์ํ ์ธ์ ์ธ์ฆ(session authentication)์ ๋ค์๊ณผ ๊ฐ์ ์์๋ก ์ด๋ฃจ์ด์ง๋ ์ธ์ฆ ๋ฐฉ์์ด๋ค.
1. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์๊ฒ (์์ด๋, ๋น๋ฐ๋ฒํธ์ ๊ฐ์) ์ธ์ฆ ์ ๋ณด๋ฅผ ์ ์กํ๋ค.
2. ์ธ์ฆ ์ ๋ณด๊ฐ ์ฌ๋ฐ๋ฅด๋ค๋ฉด, ์๋ฒ๋ ์ธ์ ์์ด๋๋ฅผ ์์ฑํด ํด๋ผ์ด์ธํธ์๊ฒ ์ ์กํ๋ค.
3. ์๋ฒ๋ ์์ฑํ ์ธ์ ์์ด๋๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฑ์ ์ ์ฅํ๋ค.
4. ํด๋ผ์ด์ธํธ๋ ์ถํ ์์ฒญ์ ๋ณด๋ผ ๋ ์ฟ ํค ๋ด์ ์ธ์ ์์ด๋๋ฅผ ํฌํจํ์ฌ ์ ์กํ๋ค.
5. ์๋ฒ๋ ์ฟ ํค ์ ์ธ์ ์์ด๋์ ์ ์ฅ๋ ์ธ์ ์์ด๋๋ฅผ ๋น๊ตํ์ฌ ํด๋ผ์ด์ธํธ๋ฅผ ์๋ณํ๋ค.
์์ ๊ฐ์ด ์ฟ ํค๋ฅผ ํตํด์ ์ธ์ ์์ด๋๋ฅผ ์ ์กํ๋ฉด ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค ๋ฒ๊ฑฐ๋ก์ด ์ธ์ฆ ๊ณผ์ ์ ๊ฑฐ์น ํ์๊ฐ ์์ด์ ํจ์จ์ ์ด๋ค.
์น ์คํ ๋ฆฌ์ง: ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ธ์ ์คํ ๋ฆฌ์ง
์ฟ ํค ์ด์ธ์๋ ํด๋ผ์ด์ดํธ๊ฐ ์ ์ฅํ๊ณ ํด๋ผ์ด์ธํธ์ ์ํ๋ฅผ ์ถ์ธกํ ์ ์๋ ์น ์คํ ๋ฆฌ์ง(web storage)๊ฐ ์๋ค.
์น ์คํ ๋ฆฌ์ง๋ ์น ๋ธ๋ผ์ฐ์ ๋ด์ ์ ์ฅ ๊ณต๊ฐ์ผ๋ก, ์ผ๋ฐ์ ์ผ๋ก ์ฟ ํค๋ณด๋ค ๋ ํฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
๋ ์ฟ ํค๋ ์๋ฒ๋ก ์๋ ์ ์ก๋์ง๋ง, ์น ์คํ ๋ฆฌ์ง์ ์ ๋ณด๋ ์๋ฒ๋ก ์๋ ์ ์ก๋์ง ์๊ณ ํ์ํ ๋ ์กฐํํ ์ ์๋ค.
์น ์คํ ๋ฆฌ์ง์๋ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ธ์ ์คํ ๋ฆฌ์ง๊ฐ ์๋ค. ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด๊ณ [Application] -> [Storage]์์ ํ์ธํ ์ ์๋ค.
์ธ์ ์คํ ๋ฆฌ์ง๋ ์ธ์ ์ด ์ ์ง๋๋ ๋์(๋ธ๋ผ์ฐ์ ๊ฐ ์ด๋ ค ์๋ ๋์) ์ ์ง๋๋ ์ ๋ณด์ด๊ณ ,
๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ ๋ณ๋๋ก ์ญ์ ํ์ง ์๋ ํ ์๊ตฌ์ ์ผ๋ก ์ ์ฅ์ด ๊ฐ๋ฅํ ์ ๋ณด์ด๋ค.
์ฝํ ์ธ ํ์๊ณผ ํํ
- ๊ฐ์ URI์ ๋ํด ๊ฐ์ฅ ์ ํฉํ '์์์ ํํ'๋ฅผ ์ ๊ณตํ๋ ๋ฉ์ปค๋์ฆ.
- ๊ฐ์ URI๋ก ์๋ณ ๊ฐ๋ฅํ HTML ๋ฌธ์๋ผ ํด๋, ์์ด๋ก ์์ฒญํ๋ฉด ์์ด๋ก ๋ ํํ๋ก ์ ๊ณตํ๊ณ , ํ๊ตญ์ด๋ก ์์ฒญํ๋ฉด ํ๊ตญ์ด๋ก ๋ ํํ๋ฅผ ์ ๊ณตํ๋ ๊ฒ.
- ์ด๋, '์ก์์ ๊ฐ๋ฅํ ์์์ ํํ'๋ฅผ ์์์ ํํ์ด๋ผ๊ณ ํ๋ค.
- ์์์ GET ๋ฉ์๋๋ฅผ '์์์ ์ต๋ํ๊ธฐ ์ํ ๋ฉ์๋'๋ผ๊ณ ์ ์ํ๋ค๋ฉด ์ค์ GET ๋ฉ์๋์ ์ ์๋ '์์์ ํน์ ํํ์ ์ต๋ํ๊ธฐ ์ํ ๋ฉ์๋'์ด๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์ ํธํ๋ ํํ์ ๋ฐ์ํ๊ณ ์ ์ฝํ
์ธ ํ์ ๊ด๋ จ HTTP ํค๋๋ค์ด ์ฌ์ฉ๋๋ค.
- ์ ํธํ๋ ๋ฏธ๋์ด ํ์ ์ ๋ํ๋ด๊ธฐ ์ํ Accept ํค๋
- ์ ํธํ๋ ์ธ์ด๋ฅผ ๋ํ๋ด๊ธฐ ์ํ Accept-Language ํค๋
- ์ ํธํ๋ ๋ฌธ์ ์ธ์ฝ๋ฉ๊ณผ ์์ถ ๋ฐฉ์์ ๋ํ๋ด๊ธฐ ์ํ Accept-Charset ๋ฐ Accept-Encoding ํค๋ ๋ฑ์ด ์๋ค.
- ์ฝํ
์ธ ํ์์ ์ ํธ๋์ ์ฐ์ ์์๋ฅผ q ๊ฐ์ผ๋ก ํํํ ์ ์๋ค.(Quailty Value)
- ์๋ต๋์์ ๊ฒฝ์ฐ์๋ 1์ ์๋ฏธํ๊ณ , ๋ฒ์๋ 0๋ถํฐ 1๊น์ง์ด๋ฉฐ, ๊ฐ์ด ํด์๋ก ์ฐ์ ์์๊ฐ ๋๋ค.
- Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
- Accept: text/html,application/xml;q=0.9,text/plain;q=.06,*/*;q=0.5
- ํ๊ตญ์ด, ์์ด ์์ผ๋ก ์ ํธํ๊ณ , HTML, XML, ์ผ๋ฐ ํ ์คํธ์์ผ๋ก ์ ํธํ๋ค๋ ์๋ฏธ.
'๐ฅ๏ธ CS > โก๏ธ ๋คํธ์ํฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] ํผ๊ณต๋คํธ Chapter 7. ๋คํธ์ํฌ ์ฌํ (0) | 2024.09.20 |
---|---|
[CS] ํผ๊ณต๋คํธ Chapter 4. ์ ์ก ๊ณ์ธต (1) | 2024.09.06 |
[CS] ํผ๊ณต๋คํธ Chapter 3. ๋คํธ์ํฌ ๊ณ์ธต (0) | 2024.09.02 |
[CS] ํผ๊ณต๋คํธ Chapter 2. ๋ฌผ๋ฆฌ ๊ณ์ธต๊ณผ ๋ฐ์ดํฐ ๋งํฌ ๊ณ์ธต (0) | 2024.08.28 |
[CS] ํผ๊ณต๋คํธ Chapter 1. ์ปดํจํฐ ๋คํธ์ํฌ ์์ํ๊ธฐ (1) | 2024.08.26 |