Http
๐Network - HTTP
๊ฐ์
๋ธ๋ผ์ฐ์ ์ URL ์ ์ ๋ ฅํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ URL์ ์๋ฏธ์ ๋ฐ๋ผ request massage๋ฅผ ๋ง๋ ๋ค ๊ทธ๋ฆฌ๊ณ ์ด massage๋ฅผ web server์ ๋ณด๋ด์ฃผ๊ฒ ๋๋๋ฐ ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋๊ฒ์ ๋์งํธ ๋ฐ์ดํฐ๋ฅผ ์ด๋ฐํ๋ ๊ตฌ์กฐ์ธ OS์ ๋ด์ฅ๋ ๋คํธ์ํฌ ์ ์ด์ฉ ์ํํธ ์จ์ด์ ์๋ขฐํ์ฌ massage๋ฅผ server๊น์ง ์ ๋ฌํ๋ค
๐ก www.blogger.com ์์ www๋ ์น์๋ฒ์ ๋ถ์ธ ์ด๋ฆ์ด๋ค.
์ฐ๋ฆฌ๊ฐ ํํ ์๊ณ ์๋ worlde wide web ์ ํ๋กํ ์ฝ์ ๋ํ๋ด๋๊ฒ ์๋ ์น์ ์ค๊ณํ ์ฌ๋์ด ์ต์ด๋ก ๋ง๋ browser๊ฒธ html editor์ ๋ถ์ธ ์ด๋ฆ
๐ก๋ธ๋ผ์ฐ์ ๋ฅผ ๋น๋กฏํ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋คํธ์ํฌ๋ฅผ ์ ์ดํ๋๊ฒ ์๋๋ผ OS์ ์๋ขฐ ํ์ฌ ๋คํธ์ํฌ๋ฅผ ์ ์ดํ๋ค
URL
URL์ ๋ ฅ
URL( uniform Resource Locator ) ์ฐ๋ฆฌ๊ฐ ํํ ๋ณด๋ http:// ๋ฟ๋ง ์๋๋ผ https:// . file: ,mailto: ๋ฑ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค
์ฐ๋ฆฌ๊ฐ ์ฌ์ฉํ๋ ๋ธ๋ผ์ฐ์ ๋ ๋ณตํฉ์ ์ธ ํด๋ผ์ด์ธํธ ์ํํธ์จ์ด๋ก URL์ ์ข ๋ฅ์ ๋ฐ๋ผ FTP (ํ์ผ์ ์ ๋ก๋ ๋ค์ด๋ก๋ ํ ๋ ์ฌ์ฉํ๋ Protocol<ํต์ ๊ท์น>) ์๋ฒ์ ์์ธ์ค, ์น์๋ฒ์ ์์ธ์ค ๋ฑ๊ณผ ๊ฐ์๊ฒ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค.
๋ฐ๋ผ์ ์ก์ธ์ค ๋์์๋ฐ๋ผ URL ๋งจ ์์ ํ๋กํ ์ฝ ์ข ๋ฅ๊ฐ ์ ํ์ง๋ค.(์ ํํ๋ file:๊ณผ ๊ฐ์ด ๋คํธ์ํฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ ์ ๋ค๋ ์๊ธฐ ๋๋ฌธ์ ์ก์ธ์ค ๋ฐฉ๋ฒ์ด๋ผ๊ณ ์๊ฐํด์ฃผ์)
URLํด๋
http: | // | www.webserver.co.kr | / | dirc | / | file.html |
---|---|---|---|---|---|---|
์ก์ธ์ค๋ฐฉ๋ฒ | ๋ค์์ด์๋ฒ๋๊ฑธ์๋ ค์ค | ์น์๋ฒ ์ด๋ฆ | ๋ฐ์ดํฐ์ ์ถ์ฒ ํ์ผ์ ๊ฒฝ๋ก |
์น์๋ฒ์ ์ ์ฅ๋ dirc ์ด๋ผ๋ directory์๋์ ์๋ file.html์ ์ฐพ์๊ฐ๋ค
ํ์ผ์ ๊ฒฝ๋ก ๋ถ๋ถ์ด ์๋ต๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํด ์๋ฒ์ธก์์๋ default ๊ฐ์ ์ค์ ํด๋๋๋ฐ ์ผ๋ฐ์ ์ผ๋ก ์ฐ๋ฆฌ๊ฐ ๋ง์ด ์ฐ๋ index.html์ด ์ด์๊ฐ์ ๋ฐฉ๋ฒ์ด๋ค
http://server.com/direc | http://server.com/ | http://server.com |
---|---|---|
direc ๋ฐ์ index์ฐพ์ | root direc ๋ฐ์ index์ฐพ์ |
http://server.com/random ๊ณผ ๊ฐ์๊ฒฝ์ฐ /๊ฐ ์ ๋ถ์ด์ file๋ก ๋ณด์์ผํ์ง๋ง file๊ณผ directory ์ด๋ฆ์ ์ค๋ณต๋ ์ ์์ผ๋ฏ๋ก file์ผ ๊ฒฝ์ฐ file์ ๋ถ๋ฌ์ค๊ณ directory์ผ ๊ฒฝ์ฐ directory๋ด default๊ฐ
Requset & Response
request : ์๋ฒ์ ์๊ตฌ์ฌํญ์ ๋ณด๋ด๋ ๋ฉ์ธ์ง
๋ฌด์ = URI (uniform Resource identifier) = ์ก์ธ์ค ๋์์ ํต์นญ
๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ํ์ผ์ ์ด๋ฆ์ด๋ CGI(common gateway interface ์น ์๋ฒ์์ ํ๋ก๊ทธ๋จ ํธ์ถํ ๋ ๊ท์น) ํ๋ก๊ทธ๋จ์ ํ์ผ๋ช ๋ฟ๋ง์๋๋ผ http๋ก ์์ํ๋ URL์ ์ฌ์ฉํ ์๋ ์๋ค
์ด๋ป๊ฒ = Method
-
GET : URI๋ก ์ง์ ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์จ๋ค.(ํ์ผ์ ๊ฒฝ์ฐ ํ์ผ์ ๋ด์ฉ์, ํ๋ก๊ทธ๋จ์ ๊ฒฝ์ฐ ์ถ๋ ฅ๋ฐ์ดํฐ)
request ๋ฉ์ธ์ง์ method์ GET์ด๋ผ ์ฐ๊ณ URI๋ถ๋ถ์ ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ์์ฑํ๊ฒ ๋๊ณ ์น์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ responseํด์ฃผ๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ํ์ด์ง ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํด ํ๋ฉด์ ํ์
-
POST : ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ฐ์ดํฐ ์ก์ (form์ ์ ๋ ฅํ data์ก์ )
ํผ์ ๋ฐ์ดํฐ๋ฅผ ์น์๋ฒ์ ์ก์ ํ๋๊ฒฝ์ฐ์ ์ฌ์ฉํ๋ค URI๋ถ๋ถ์ ํ๋ก๊ทธ๋จ ํ์ผ๋ช ์ด ๋ค์ด๊ฐ๋๋ฐ index.cgi / index.php ๋ฑ ์ฒ๋ฆฌํ๋ก๊ทธ๋จ์ด ๋ค์ด๊ฐ๊ฒ๋๊ณ request๋ฉ์ธ์ง ์์ ์ก์ data๋ฅผ ํฌํจ์์ผ ์น์๋ฒ๋ ํด๋น data๋ฅผ ํ๋ก๊ทธ๋จ์ ์ ๋ฌํด์ฃผ๊ณ ๊ทธ์ ๋ํ ์ถ๋ ฅ ๊ฐ์ responseํด์ค๋ค
- PUT : URI๋ก ์ง์ ํ ์๋ฒ์ ํ์ผ์ ์นํ(ํ์ผ์ด ์๋ ๊ฒฝ์ฐ์๋ ์ํ์ผ ์์ฑ)
- DELETE : URI๋ก ์ง์ ํ ํ์ผ ์ญ์
response : ๋ฆฌํ์คํธ์ ์๊ตฌ์ ๋ํ ๊ฒฐ๊ณผ
(์คํ ๊ฒฐ๊ณผ์ ๋ํ) status code + header file + pagedata
ํด๋ผ์ด์ธํธ๊ฐ response ๋ฉ์ธ์ง์์ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์ฌ ํ์
HTTP(Hyper Text Transfer protocol)ํ๋กํ ์ฝ์ ๊ฐ๋
ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์ฃผ๊ณ ๋ฐ๋ ๋ฉ์ธ์ง์ ๋ด์ฉ์ด๋ ์์๋ฅผ ์ ํ๊ฒ
Requset massage
<method><๊ณต๋ฐฑ><URI><๊ณต๋ฐฑ><HTTPversion> -- request line
<ํ๋๋ช
>:<ํ๋๊ฐ>
- -- massage header (request์ ๋ถ๊ฐ์ ๋ณด)
- ํํ์ ํ๊ฐ์ headerํ๋
- ์ฌ๊ธฐ๊น์ง header
<๊ณต๋ฐฑ ํ>
<๋ฉ์ธ์ง ๋ณธ๋ฌธ>(post๋ง ์์) -- ํด๋ผ์ด์ธํธ -> ์๋ฒ๋ก ์ก์ ํ๋ data
request ๋ฉ์ธ์ง๋ฅผ ๋ณด๋ด๋ ๋ฒ
- URL ์ ๋ ฅ์์์์ URL์ ๋ ฅ - GET
- ํผ ๋ฐ์ดํฐ์ submit (get ์ ๊ฒฝ์ฐ URI?querystring ํํ, ์งง์๋ด์ฉ) GET & POST ๊ฐ๋ฅ
- ํ์ดํผ๋งํฌ ํด๋ฆญ - GET
Response massage
<HTTPversion> <๊ณต๋ฐฑ> <status code> <๊ณต๋ฐฑ> <status massage>
<ํ๋๋ช
> : <ํ๋๊ฐ>
-
-
-
<๊ณต๋ฐฑํ>
<๋ฉ์ธ์ง๋ณธ๋ฌธ>
Response Status Code
1xx : ์ฒ๋ฆฌ์ ๊ฒฐ๊ณผ ์ํฉ ๋ฑ์ ํต์ง
2xx : ์ ์ ์ข ๋ฃ
3xx : ๋ฌด์ธ๊ฐ ๋ค๋ฅธ ์กฐ์น๊ฐ ํ์
4xx : ํด๋ผ์ด์ธํธ ์ธก์ ์ค๋ฅ
5xx : ์๋ฒ์ธก์ ์ค๋ฅ
๐ก media๋ ์ด๋ป๊ฒ responseํ ๊น?
๋ธ๋ผ์ฐ์ ๋ ํด๋น ๋ฉ์ธ์ง๋ฅผ ๋ถ์ํด ํ๋ฉด์ ์ถ๋ ฅํด์ฃผ๊ฒ ๋๋๋ฐ ์์, ์ด๋ฏธ์ง์ ๊ฐ์ ํ๊ทธ๋ฅผ ๋ง๋ ๊ฒฝ์ฐ ํด๋น ๋ถ๋ถ์ ๊ณต๋ฐฑ์ฒ๋ฆฌํ๊ณ ๋์ด๊ฐ ๋ค ํด๋น ํ๊ทธ์ URI๋ฅผ web server์ ์์ฒญํด response๋ฅผ ๋ฐ๋ ์์ ์ ์ํํ๋ค
๋ฐ๋ผ์ 4๊ฐ์ media tag๋ฅผ ๊ฐ์ง html ํ์ด์ง๋ฅผ ๋ถ๋ฌ์ค๊ธฐ์ํด์ ์ด 5๋ฒ์ request๋ฅผ ํด์ผํ๋ค( ๋ฌธ์ฅ 1๋ฒ, ๋ฏธ๋์ด 4๋ฒ(binaryํํ์ response ๋ฉ์ธ์ง๋ณธ๋ฌธ ์์ ) )
web server๋ 1๋ฒ์ request ์ ๋ํด 1๋ฒ์ response๋ง ํด์ค๋ฟ์ด๋ค.
๐ญheader field type
common
DATE : ๋ฉ์ธ์ง๊ฐ ์์ฑ๋ ๋ ์ง
Transfer - Encoding : ๋ฉ์ธ์ง ๋ณธ๋ฌธ์ ์ธ์ฝ๋ฉ ๋ฐฉ์
request
User-Agent : ํด๋ผ์ด์ธํธ ์ํํธ ์จ์ด ์ ๋ณด
Accept : ํด๋ผ์ด์ธํธ์ธก์ด content-Type์ผ๋ก ๋ฐ๋ ๋ฐ์ดํฐ์ ์ข
๋ฅ
Host : ๋ฆฌํ์คํธ ๋ฐ๋ ์๋ฒ์ IP ์ฃผ์์ ํฌํธ๋ฒํธ
response
Server : ์๋ฒ ์ํํธ์จ์ด์ ์ ๋ณด
Entity header
Allow : ์ง์ ํ URI ๋ก ์ฌ์ฉ๊ฐ๋ฅํ ๋ฉ์๋๋ฅผ ๋ํ๋ธ๋ค
Content-length : ๋ฉ์ธ์ง ๋ณธ๋ฌธ์ ๊ธธ์ด๋ฅผ ๋ํ๋ธ๋ค
Content-type : ๋ฉ์ธ์ง ๋ณธ๋ฌธ์ ๋ฐ์ดํฐ ์ข
๋ฅ
Last - Modified : ์ ๋ณด๋ฅผ ์ต์ข
๋ณ๊ฒฝํ ์ผ์
Content- Location : ๋ฉ์ธ์ง ๋ณธ๋ฌธ์ด ์๋ฒ์ ์ด๋์ ์๋์ง ์์น๋ฅผ ๋ํ๋
์ถ์ฒ : ์ฑ๊ณต๊ณผ ์คํจ๋ฅผ ๊ฒฐ์ ํ๋ !%์ ๋คํธ์ํฌ ์๋ฆฌ