[HTTP] URI์ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ
๐URI(Uniform Resource Identifier)
- URI : ๋ฆฌ์์ค๋ฅผ ๊ตฌ๋ณํ๋ ํตํฉ๋ ๋ฐฉ๋ฒ์ ๋ํ๋ด๋ฉฐ URL๊ณผ URN์ ํฌํจํ๋ค.
- URL : ๋ฆฌ์์ค์ ์์น๋ฅผ ์ง์ ํ๋ค.
- URN : ๋ฆฌ์์ค์ ์ด๋ฆ์ ๋ถ์ฌํ๋ค.
๋ฆฌ์์ค์ ์์น๋ ๋ณํ ์ ์์ง๋ง ์ด๋ฆ์ ๋ณํ์ง ์๋๋ค. ํ์ฌ URN ์ด๋ฆ๋ง์ผ๋ก ์ค์ ๋ฆฌ์์ค๋ฅผ ์ฐพ์ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ณดํธํ ๋์ง ์์๊ธฐ ๋๋ฌธ์ URN์ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๊ณ URL์ ๋ง์ด ์ฌ์ฉํ๋ค.
๐ URL ์ ์ฒด ๋ฌธ๋ฒ
- scheme://[userinfo@]host[:port][/path][?query][#fragment]
- https://www.google.com:443/search?q=hello&oq=hello
โ scheme
- ์ฃผ๋ก ํ๋กํ ์ฝ ์ฌ์ฉ
- ํ๋กํ ์ฝ : ์ด๋ค ๋ฐฉ์์ผ๋ก ์์์ ์ ๊ทผํ ๊ฒ์ธ๊ฐ์ ๋ํ ๊ท์น e.g. http, https, ftp
- http๋ 80 ํฌํธ, https๋ ์ฃผ๋ก 443 ํฌํธ๋ฅผ ์ฌ์ฉ(default), ํฌํธ๋ ์๋ต ๊ฐ๋ฅ
- https๋ http์ ๋ณด์์ ์ถ๊ฐํ ํ๋กํ ์ฝ๋ก ๋๋ถ๋ถ์ ์น์ฌ์ดํธ์์ ์ฌ์ฉ๋๋ค. (HTTP Secure)
โ userinfo
- URI์ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ํฌํจํด์ ์ธ์ฆ
- ๊ฑฐ์ ์ฌ์ฉํ์ง ์์
โ host
- ํธ์คํธ๋ช
- ๋๋ฉ์ธ๋ช ๋๋ IP ์ฃผ์๋ฅผ ์ง์ ์ฌ์ฉ๊ฐ๋ฅ
โ PORT
- ์ ์ ํฌํธ ์ ๋ณด
- ์ผ๋ฐ์ ์ผ๋ก ์๋ต, ์๋ต์ http๋ 80, https๋ 443
โ path
- ๋ฆฌ์์ค ๊ฒฝ๋ก, ๊ณ์ธต์ ๊ตฌ์กฐ (๋๋ ํ ๋ฆฌ์ฒ๋ผ)
โ query
- key=value ํํ
- ?๋ก ์์, &๋ก ํ๋ผ๋ฏธํฐ๋ฅผ ์ถ๊ฐํ ์ ์์ e.g. keyA=valueA&keyB=valueB
- ์น ์๋ฒ์ ์ ๊ณตํ๋ ํ๋ผ๋ฏธํฐ๋ก ์ฟผ๋ฆฌ ํ๋ผ๋ฏธํฐ, ์ฟผ๋ฆฌ ์คํธ๋ง์ผ๋ก ๋ถ๋ฆผ (๊ฐ์ด ๋ชจ๋ ๋ฌธ์๋ก ๋์ด๊ฐ)
โ fragment
- html ๋ด๋ถ ๋ถ๋งํฌ ๋ฑ์ ์ฌ์ฉ๋จ e.g. #
- ์๋ฒ์ ์ ์กํ๋ ์ ๋ณด๋ ์๋
๐ ์น ๋ธ๋ผ์ฐ์ ์์ฒญ ํ๋ฆ
1. ํด๋ผ์ด์ธํธ๊ฐ ์ฃผ์์ฐฝ์ URL์ ์ ๋ ฅํ๋ค.
2. ์น ๋ธ๋ผ์ฐ์ ๋ DNS๋ฅผ ์กฐํํ์ฌ ๋์ฐฉ์ง์ IP์ PORT ์ ๋ณด๋ฅผ ์ฐพ๋๋ค.
3. ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก HTTP ์์ฒญ ๋ฉ์ธ์ง๋ฅผ ์์ฑํ๋ค.
๐ HTTP ๋ฉ์ธ์ง ์ ์ก ๊ณผ์
์น ๋ธ๋ผ์ฐ์ ์์ ์์ฑ๋ HTTP ์์ฒญ ๋ฉ์ธ์ง๋ ์์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํด OS ๊ณ์ธต์ผ๋ก ์ด๋ํ๊ณ , HTTP ๋ฉ์ธ์ง๋ฅผ ํฌํจํ TCP/IP ํจํท์ ์์ฑํด์ ์๋ฒ๋ก ์ ๋ฌ๋๋ค. ์๋ฒ๊ฐ TCP/IP ํจํท์ ๋ฐ์ผ๋ฉด HTTP ๋ฉ์ธ์ง๋ฅผ ํด์ํ๋ค. ์ดํ ์๋ฒ๋ ์์ฒญ์ ๋ํ ์๋ต ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๊ณ , ํด๋ผ์ด์ธํธ์ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ ๋๋ง์ ํด์ ์น ํ๋ฉด์ ์ถ๋ ฅํ๋ค.
๊ฐ์ ์๋ฃ
๋ชจ๋ ๊ฐ๋ฐ์๋ฅผ ์ํ HTTP ์น ๊ธฐ๋ณธ ์ง์ - ์ธํ๋ฐ | ๊ฐ์
์ค๋ฌด์ ๊ผญ ํ์ํ HTTP ํต์ฌ ๊ธฐ๋ฅ๊ณผ ์ฌ๋ฐ๋ฅธ HTTP API ์ค๊ณ ๋ฐฉ๋ฒ์ ํ์ตํฉ๋๋ค., - ๊ฐ์ ์๊ฐ | ์ธํ๋ฐ...
www.inflearn.com