DevLog ๐Ÿ˜ถ

[Network] ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ๊ณผ HTTP ๋ฆฌํ€˜์ŠคํŠธ ๋ณธ๋ฌธ

โœ๏ธ/Network

[Network] ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ๊ณผ HTTP ๋ฆฌํ€˜์ŠคํŠธ

dolmeng2 2023. 4. 15. 23:21

โœ”๏ธ URL ์ž…๋ ฅ๊ณผ ํŒจํ‚ท ์—ฌํ–‰

 

๊ต์žฌ์— ๋‚˜์™€์žˆ๋Š” ๋‚ด์šฉ์ด์ง€๋งŒ ๋‚˜๋ฆ„ ์ •๋ฆฌํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ ๋‹ค์‹œ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๋ณด์•˜๋‹ค.

ํด๋ผ์ด์–ธํŠธ, ์›น ์„œ๋ฒ„ LAN, ์›น ์„œ๋ฒ„๊นŒ์ง€ ํ•œ ๋ฒˆ ๋Œ์•„๋ณด๋ฉด์„œ ์ •๋ฆฌ๋ฅผ ํ•œ ๋‹ค์Œ, ์‹œ๊ฐ„์ด ๋  ๋•Œ ํ—ˆ๋ธŒ๋‚˜ ํšŒ์„  ์ชฝ์„ ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค.

(์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1% ์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค :D)

 


 

โœ”๏ธ ์‚ฌ์šฉ์ž๊ฐ€ URL์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ์ผ

์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž!

URL์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? Uniform Resource Locator๋กœ, http://๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ file:, ftp:, mailto: ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” URL๋“ค์ด ์กด์žฌํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹จ์ˆœํžˆ ์›น ์„œ๋ฒ„์— ์—‘์„ธ์Šค ํ•˜๋Š” ์—ญํ• ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ, ์—…๋กœ๋“œ ๊ฐ™์€ FTP ํด๋ผ์ด์–ธํŠธ๋‚˜ ๋ฉ”์ผ ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋Šฅ๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๋Ÿฌ ์ข…๋ฅ˜์˜ URL์„ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ์— ์—‘์„ธ์Šคํ• ์ง€ ๊ฒฐ์ •ํ•˜๊ฒŒ ๋œ๋‹ค.

 

๋Œ€ํ‘œ์ ์œผ๋กœ ๋ช‡ ๊ฐ€์ง€์˜ URL ํ˜•์‹์„ ์‚ดํŽด๋ณด์ž.

 

1) HTTP ํ”„๋กœํ† ์ฝœ

http://user:password@www.cyber.co.kr:80/dir/file1.html 

user: ์‚ฌ์šฉ์ž๋ช… (์ƒ๋žต ๊ฐ€๋Šฅ)

password: ํŒจ์Šค์›Œ๋“œ (์ƒ๋žต ๊ฐ€๋Šฅ)

www.cyber.co.kr: ์›น ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ๋ช…

80: ํฌํŠธ ๋ฒˆํ˜ธ (์ƒ๋žต ๊ฐ€๋Šฅ)

dir/file1.html: ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ช…

 

2) FTP ํ”„๋กœํ† ์ฝœ - ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ / ์—…๋กœ๋“œ

ftp://user:password@ftp.cyber.co.kr:80/dir/file1.html 

user: ์‚ฌ์šฉ์ž๋ช… (์ƒ๋žต ๊ฐ€๋Šฅ)

password: ํŒจ์Šค์›Œ๋“œ (์ƒ๋žต ๊ฐ€๋Šฅ)

ftp.cyber.co.kr: ftp ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ๋ช…

80: ํฌํŠธ ๋ฒˆํ˜ธ (์ƒ๋žต ๊ฐ€๋Šฅ)

dir/file1.html: ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ช…

 

3) ๋กœ์ปฌ ํŒŒ์ผ์˜ ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ

file://localhost/c:path/file1.html 

localhost: ์ปดํ“จํ„ฐ๋ช… (์ƒ๋žต ๊ฐ€๋Šฅ)

/c:path/file1.html: ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ช…

 

์šฐ๋ฆฌ๋Š” URL์ด ์–ด๋–ค ์‹์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

๊ทธ๋ ‡๋‹ค๋ฉด ์šฐ๋ฆฌ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์— URL์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์–ด๋–ค ์ผ์ด ์ผ์–ด๋‚˜๋Š”์ง€ ์ƒ๊ฐํ•ด๋ณด์ž.

 

 

๐ŸŒฑ ๋ธŒ๋ผ์šฐ์ € - URL ํ•ด๋…ํ•˜๊ธฐ

๋จผ์ €, ์•„๊นŒ ์œ„์˜ ๊ทธ๋ฆผ์—์„œ ๋ดค๋˜ ๊ฒƒ์ฒ˜๋Ÿผ ์‚ฌ์šฉ์ž๊ฐ€ URL์„ ์ž…๋ ฅํ•˜๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ์ด๋ฅผ ํ•ด์„ํ•˜์—ฌ HTTP ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค.

URL์„ ํ•ด๋…ํ•  ๋•Œ๋Š” ํฌ๊ฒŒ ํ”„๋กœํ† ์ฝœ / ์›น ์„œ๋ฒ„ / ๊ทธ๋ฆฌ๊ณ  ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ช…์œผ๋กœ ๋‚˜๋ˆ„๊ฒŒ ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ , '์›น ์„œ๋ฒ„์— ์žˆ๋Š”' ~~๋ผ๋Š” 'ํŒŒ์ผ'์— ์—‘์„ธ์Šคํ•œ๋‹ค๋Š” ์˜๋ฏธ๋กœ URL์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

 

http://www.wootecho.co.kr/dir/file1.html

-> ์—ฌ๊ธฐ์„œ /dir/file1.html์€ ํŒŒ์ผ๋ช…์„ ์˜๋ฏธํ•˜๋ฉฐ, ์ƒ๋žต์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

ํŒŒ์ผ๋ช…์„ ์ƒ๋žตํ–ˆ๋‹ค๋ฉด, ์„œ๋ฒ„๋Š” ์–ด๋–ค ํŒŒ์ผ์— ์—‘์„ธ์Šค๋ฅผ ํ•ด์•ผ ํ• ๊นŒ?

๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋ฒ„์—์„œ๋Š” ํŒŒ์ผ๋ช…์„ ์ƒ๋žตํ•  ๋•Œ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ (๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ) index.html์ด๋‚˜ default.html์„ ์„ค์ •ํ•ด๋‘”๋‹ค.

 

http://www.google.com 

์œ„์˜ url์—์„œ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ํŒŒ์ผ๋ช…๊นŒ์ง€ ํ•จ๊ป˜ ์ƒ๋žตํ•œ ๊ฒฝ์šฐ์ด๋‹ค.

์ด ๊ฒฝ์šฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋ฃจํŠธ (/)๋กœ ์„ค์ •์ด ๋˜๊ณ , ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ ํ•˜์œ„์— ์„ค์ •๋œ ํŒŒ์ผ์— ์—‘์„ธ์Šคํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

๐ŸŒฑ HTTP๊ฐ€ ๋ฌด์—‡์ผ๊นŒ?

HTTP ํ”„๋กœํ† ์ฝœ์€ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฉ”์‹œ์ง€์˜ ๋‚ด์šฉ์ด๋‚˜ ์ˆœ์„œ๋ฅผ ์ •ํ•œ ๊ฒƒ์ด๋‹ค.

ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„๋กœ request message๋ฅผ ๋ณด๋‚ด๋Š”๋ฐ, ์ด๋•Œ ๋ฉ”์‹œ์ง€ ์•ˆ์—๋Š” '๋ฌด์—‡์„', '์–ด๋–ป๊ฒŒ' ํ• ์ง€ ์ ํ˜€์žˆ๋‹ค.

 

๊ทธ๋ฆฌ๊ณ , ์—ฌ๊ธฐ์„œ '๋ฌด์—‡์„'์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์ด URI์ด๋ฉฐ, ๋ณดํ†ต CGI ํ”„๋กœ๊ทธ๋žจ์˜ ํŒŒ์ผ๋ช…์„ URI๋กœ ์‚ฌ์šฉํ•œ๋‹ค. 

(CGI ํ”„๋กœ๊ทธ๋žจ = ์›น ์„œ๋ฒ„์™€ ์™ธ๋ถ€ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์ด์— ์ •๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์ด๋‚˜ ๊ทœ์•ฝ์„ ์ง€ํ‚จ ํ”„๋กœ๊ทธ๋žจ - ex. /dir1/file1.html)

๋ฌผ๋ก , URI๋กœ URL์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์–ด๋””์— ์—‘์„ธ์Šค ํ• ์ง€๋ฅผ ์ •ํ•˜๋Š” ๊ฒŒ URI๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋œ๋‹ค.

 

'์–ด๋–ป๊ฒŒ'์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์€ Http method์ด๋‹ค. ์›น ์„œ๋ฒ„์—๊ฒŒ ์–ด๋–ค ๋™์ž‘์„ ํ•˜๊ณ  ์‹ถ์€์ง€ ์ „๋‹ฌํ•˜๋Š” ๊ฐœ๋…์ด๋‹ค.

 

๋Œ€ํ‘œ์ ์ธ HTTP method์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž.

๋ฉ”์„œ๋“œ ์˜๋ฏธ
GET URI๋กœ ์ง€์ •ํ•œ ์ •๋ณด๋ฅผ ๋„์ถœํ•œ๋‹ค.
ํŒŒ์ผ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๊ทธ๋Œ€๋กœ,
CGI ํ”„๋กœ๊ทธ๋žจ์€ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์˜ ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•œ๋‹ค.
POST ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์†ก์‹ ํ•œ๋‹ค.
HEAD HTTP ๋ฉ”์„œ๋“œ ํ—ค๋”๋งŒ ๋ฐ˜์†กํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ์€ ๋Œ๋ ค๋ณด๋‚ด์ง€ ์•Š๋Š”๋‹ค.
OPTIONS ํ†ต์‹  ์˜ต์…˜์„ ํ†ต์ง€ํ•˜๊ฑฐ๋‚˜ ์กฐ์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
PUT URI๋กœ ์ง€์ •ํ•œ ์„œ๋ฒ„์˜ ํŒŒ์ผ์„ ์น˜ํ™˜ํ•œ๋‹ค.
ํŒŒ์ผ์ด ์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์ƒˆ๋กœ ํŒŒ์ผ์„ ์ž‘์„ฑํ•œ๋‹ค.
DELETE URI๋กœ ์ง€์ •ํ•œ ์„œ๋ฒ„์˜ ํŒŒ์ผ์„ ์‚ญ์ œํ•œ๋‹ค.
TRACE ์„œ๋ฒ„์ธก์—์„œ ๋ฐ›์€ ๋ฆฌํ€˜์ŠคํŠธ ๋ผ์ธ๊ณผ ํ—ค๋”๋ฅผ ๊ทธ๋Œ€๋กœ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜์†กํ•œ๋‹ค.
ํ”„๋ก์‹œ ์„œ๋ฒ„ ๋“ฑ์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฆฌํ€˜์ŠคํŠธ๊ฐ€ ์น˜ํ™˜๋˜๋Š” ์ƒํƒœ๋ฅผ ์กฐ์‚ฌํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
CONNECT ์•”ํ˜ธํ™”ํ•œ ๋ฉ”์‹œ์ง€๋ฅผ ํ”„๋ก์‹œ๋กœ ์ „์†กํ•  ๋•Œ ์ด์šฉํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ , ๋ฆฌํ€˜์ŠคํŠธ ๋ฉ”์‹œ์ง€๊ฐ€ ์›น ์„œ๋ฒ„์— ๋„์ฐฉํ•˜๋ฉด ์›น ์„œ๋ฒ„๋Š” ์†์— ์“ฐ์—ฌ์žˆ๋Š” ๋‚ด์šฉ์„ ํ•ด๋…ํ•œ๋‹ค.

๋‚ด์šฉ์— ๋”ฐ๋ผ ๋™์ž‘์„ ํ•˜๊ณ , ๊ฒฐ๊ณผ ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ต ๋ฉ”์‹œ์ง€์— ์ €์žฅํ•˜๋Š”๋ฐ, ์ด๋•Œ ๋งจ ์•ž๋ถ€๋ถ„์—๋Š” ์‹คํ–‰ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์ƒํƒœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•œ๋‹ค. (ex. 200, 400, 404, 500...)

์ด ๋ถ€๋ถ„๋„ ๋‚ด์šฉ์ด ๋งŽ์ง€๋งŒ, ๋„คํŠธ์›Œํฌ์˜ ๊ฐœ๋ก ์„ ๋‹ค๋ฃจ๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ์„ธ๋ถ€ ๋‚ด์šฉ์€ ์ƒ๋žตํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค.

 

 

๐ŸŒฑ HTTP ๋ฆฌํ€˜์ŠคํŠธ ๋ฉ”์‹œ์ง€ ๋งŒ๋“ค๊ธฐ

์šฐ๋ฆฌ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ url์„ ์ž…๋ ฅํ•˜๋ฉด, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ url์„ ํ•ด๋…ํ•˜์—ฌ Http ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“ ๋‹ค๊ณ  ํ•˜์˜€๋‹ค.

์ด๋•Œ, ๋ฉ”์‹œ์ง€๋Š” ๊ทธ๋ƒฅ ์“ฐ๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๋ณ„๋„์˜ ํฌ๋งท์— ๋งž๊ฒŒ ์ƒ์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

 

1) request message

<๋ฉ”์„œ๋“œ><๊ณต๋ฐฑ><URI><๊ณต๋ฐฑ><HTTP ๋ฒ„์ „>
<ํ•„๋“œ๋ช…>:<ํ•„๋“œ๊ฐ’>
...
<๊ณต๋ฐฑ ํ–‰>
<๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ>

์š”์ฒญ ๋ฉ”์‹œ์ง€๋Š” ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ํ–‰์€ request line์œผ๋กœ, ์œ„์˜ request์— ๋Œ€ํ•œ ๋Œ€๋žต์ ์ธ ์ •๋ณด๋“ค์ด ๋‹ด๊ฒจ์žˆ๋Š” ํ–‰์ด๋‹ค.

๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ ๊ณต๋ฐฑ๊นŒ์ง€๋Š” header๋กœ, ํ•œ ํ–‰๋งˆ๋‹ค ํ•œ ๊ฐœ์˜ ํ—ค๋” ํ•„๋“œ๋ฅผ ์ž‘์„ฑํ•œ๋‹ค.

๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์€ message body๋กœ, ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„์— ์†ก์‹ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

 

 

2) response message

<HTTP ๋ฒ„์ „><๊ณต๋ฐฑ><์ƒํƒœ ์ฝ”๋“œ><๊ณต๋ฐฑ><์‘๋‹ต ๋ฌธ๊ตฌ>
<ํ•„๋“œ๋ช…>:<ํ•„๋“œ๊ฐ’>
...
<๊ณต๋ฐฑ ํ–‰>
<๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ>

์‘๋‹ต ๋ฉ”์‹œ์ง€๋Š” ์œ„์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ํ–‰์€ status line์œผ๋กœ, ์‘๋‹ต ์ฝ”๋“œ์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

๊ทธ ๋‹ค์Œ๋ถ€ํ„ฐ ๊ณต๋ฐฑ๊นŒ์ง€๋Š” ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฉ”์‹œ์ง€ ํ—ค๋”๊ณ , ๋งˆ์ง€๋ง‰ ๋ถ€๋ถ„์€ ๋ฐ”๋””๊ฐ’์œผ๋กœ ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋กœ ์†ก์‹ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ„๋‹ค.

 

message header์˜ ๊ฒฝ์šฐ ๋‚ ์งœ(date), ํด๋ผ์ด์–ธํŠธ ์ธก์ด ์ทจ๊ธ‰ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜ (Accept), ์–ธ์–ด (Language), ํด๋ผ์ด์–ธํŠธ๋‚˜ ์„œ๋ฒ„์˜ ์†Œํ”„ํŠธ์›จ์–ด ๋ช…์นญ๊ณผ ๋ฒ„์ „, ๋ฐ์ดํ„ฐ ์œ ํšจ ๊ธฐ๊ฐ„ ๋“ฑ์˜ ๋‹ค์ˆ˜์˜ ํ•ญ๋ชฉ๋“ค์ด ์กด์žฌํ•œ๋‹ค.

ํ—ค๋” ์ด๋ฆ„ ์„ค๋ช…
General Header: ์š”์ฒญ - ์‘๋‹ต ์–‘์ชฝ์— ์‚ฌ์šฉ
Date ์š”์ฒญ - ์‘๋‹ต์ด ์ž‘์„ฑ๋œ ๋‚ ์งœ
Pragma ๋ฐ์ดํ„ฐ์˜ ์บ์‹œ ํ—ˆ์šฉ ์—ฌ๋ถ€
Cache-Control ์ผ€์‹œ ์ œ์–ด๋ฅผ ์œ„ํ•œ ์ €์˜ต
Connection ์‘๋‹ต ์†ก์‹  ํ›„ TCP ์ปค๋„ฅ์…˜์„ ์œ ์ง€ํ• ์ง€, ๋Š์„์ง€ ์˜ต์…˜
Transfer-Encoding ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์˜ ์ธ์ฝ”๋”ฉ ํ˜•์‹ ์ง€์ •
Via ๋„์ค‘์— ๊ฒฝ์œ ํ•œ ํ”„๋ก์‹œ๋‚˜ ๊ฒŒ์ดํŠธ์›จ์ด ๊ธฐ๋ก
Request Header - ์š”์ฒญ์— ๋Œ€ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด 
Authorization ์‚ฌ์šฉ์ž ์ธ์ฆ์šฉ ๋ฐ์ดํ„ฐ
From ๋ฆฌํ€˜์ŠคํŠธ ๋ฐœ์‹ ์ž์˜ ๋ฉ”์ผ ์ฃผ์†Œ
If-Modified-Since ์ง€์ •ํ•œ ๋‚ ์งœ ์ดํ›„ ์ •๋ณด๊ฐ€ ๊ฐฑ์‹ ๋œ ๊ฒฝ์šฐ๋งŒ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ,
์ด ํ•„๋“œ์— ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋œ๋‹ค.
ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์บ์‹œ์— ์ €์žฅ๋œ ์ •๋ณด๋ฅผ ๋น„๊ตํ•˜๊ณ ,
์ƒˆ๋กœ์šด ์ •๋ณด๋กœ ๊ฐฑ์‹ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ํ•„๋“œ
Referer ํ•˜์ดํผ๋งํฌ๋ฅผ ๊ฑฐ์ณ ์–ด๋Š ํŽ˜์ด์ง€๋ฅผ ์ฝ์€ ๊ฒฝ์šฐ,
๋งํฌ ๋Œ€์ƒ URI๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ•„๋“œ
User-Agent ํด๋ผ์ด์–ธํŠธ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ช…์นญ์ด๋‚˜ ๋ฒ„์ „ ์ •๋ณด
Accept ํด๋ผ์ด์–ธํŠธ ์ธก์ด Content-Type์œผ๋กœ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ ์ข…๋ฅ˜
Accept-Charset ํด๋ผ์ด์–ธํŠธ์ธก์ด ๋ฐ›์€ ๋ฌธ์ž ์ฝ”๋“œ ์„ธํŠธ
Accept-Encoding ํด๋ผ์ด์–ธํŠธ์ธก์ด Content-Encoding์œผ๋กœ ๋ฐ›์€ ์ธ์ฝ”๋”ฉ ๋ฐฉ์‹
Accept-Language ํด๋ผ์ด์–ธํŠธ์ธก์ด ๋ฐ›๋Š” ์–ธ์–ด์˜ ์ข…๋ฅ˜
Host ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ๋ฐ›๋Š” ์„œ๋ฒ„์˜ IP ์ฃผ์†Œ์™€ ํฌํŠธ ๋ฒˆํ˜ธ
If-Match Etag ์ฐธ์กฐ
If-None-Match Etag ์ฐธ์กฐ
Range ๋ฐ์ดํ„ฐ ์ผ๋ถ€๋ฅผ ์ฝ์„ ๋•Œ ๋ฒ”์œ„ ์ง€์ •
Response Header - ์‘๋‹ต์˜ ๋ถ€๊ฐ€ ์ •๋ณด๋กœ ์‚ฌ์šฉ๋˜๋Š” ํ—ค๋” ํ•„๋“œ
Location ์ •๋ณด์˜ ์ •ํ™•ํ•œ ์žฅ์†Œ๋ฅผ ์ง€์ •ํ•œ๋‹ค.
๋ฆฌํ€˜์ŠคํŠธ URI๊ฐ€ relative name๋•Œ absolute name์œผ๋กœ ํ–ˆ์„ ๋•Œ์˜ ์ •๋ณด์˜ ์œ„์น˜๋ฅผ ํ†ต์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค
Server ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ช…์นญ์ด๋‚˜ ๋ฒ„์ „์— ๊ด€ํ•œ ์ •๋ณด
WWW-Authenticate ์š”์ฒญํ•œ ์ •๋ณด์— ๋Œ€ํ•ด ์—‘์„ธ์Šค๊ฐ€ ์ œํ•œ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ,
์‚ฌ์šฉ์ž ์ธ์ฆ์šฉ ๋ฐ์ดํ„ฐ ๋ฐ˜์†ก
Accept-Ranges Range๋ฅผ ์ง€์ •ํ–ˆ์„ ๋•Œ ์„œ๋ฒ„๊ฐ€ ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€์— ๋Œ€ํ•œ ์—ฌ๋ถ€
Entity Header - message body์˜ ๋ถ€๊ฐ€ ์ •๋ณด๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ—ค๋” ํ•„๋“œ
Allow ์ง€์ •ํ•œ URI๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
Content-Encoding message body์— ์••์ถ• ๋“ฑ์˜ ์ธ์ฝ”๋”ฉ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, ํ•ด๋‹น ๋ฐฉ์‹์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.
Content-Length message body์˜ ๊ธธ์ด๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค
Content-Type message body๊ฐ€ ์–ด๋–ค ๋ฐ์ดํ„ฐ์ธ์ง€ ์ข…๋ฅ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค
Expires message body์˜ ์œ ํšจ๊ธฐ๊ฐ„์„ ๋‚˜ํƒ€๋‚ธ๋‹ค
Last-Modified ์ •๋ณด๋ฅผ ์ตœ์ข…์ ์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋‚ ์งœ
Content-Language message body์˜ ์–ธ์–ด
Content-Location message body๊ฐ€ ์„œ๋ฒ„์˜ ์–ด๋””์— ์žˆ๋Š”์ง€ URI๋กœ ํ‘œํ˜„
Content-Range ์ผ๋ถ€๋งŒ ๋ฆฌํ€˜์ŠคํŠธ ๋˜์—ˆ์„ ๋•Œ,
๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์— ์–ด๋Š ๋ฒ”์œ„์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํ‘œํ˜„๋˜์–ด ์žˆ๋Š”์ง€ ๋‚˜ํƒ€๋ƒ„
Etag ์ด์ „ ๋ฆฌํ€˜์ŠคํŠธ์˜ ์‘๋‹ต์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•œ ๊ฐฑ์‹  ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์Œ ๋ฆฌํ€˜์ŠคํŠธ์—์„œ ์†ก์‹ ํ•  ๋•Œ, ์ด ๋‘˜์„ ๊ด€๋ จ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ์ •๋ณด.
์ฟ ํ‚ค์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค.
(์„œ๋ฒ„๊ฐ€ Etag์— ๊ฐ’ ์ „๋‹ฌ - ํด๋ผ์ด์–ธํŠธ๋Š” If-Match ๊ฐ™์€ ํ•„๋“œ๋ฅผ ํ†ตํ•ด ๊ฐ’ ํ†ต์ง€...)

 

message body์˜ ๊ฒฝ์šฐ ๋ฉ”์‹œ์ง€์˜ ์‹ค์ œ ๋‚ด์šฉ์„ ์˜๋ฏธํ•œ๋‹ค.

๋‹จ, GET ์š”์ฒญ์˜ ๊ฒฝ์šฐ ๋ฉ”์„œ๋“œ์™€ URI๋กœ ์›น ์„œ๋ฒ„๊ฐ€ ๋ฌด์—‡์„ ํ• ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ๋ฌธ์ด ๋น„์–ด์žˆ๋‹ค. (ํ—ค๋”๊นŒ์ง€๋งŒ ์กด์žฌ)

 

 

๐ŸŒฑ ๋ฆฌํ€˜์ŠคํŠธ ๋ฉ”์‹œ์ง€์— ๋”ฐ๋ฅธ ์‘๋‹ต ๋ฉ”์‹œ์ง€

์ด๋ฒˆ ์ฑ•ํ„ฐ์—์„œ๋Š” ๊ฐ„๋žตํ•˜๊ฒŒ ๋ฌด์—‡์ธ์ง€๋งŒ ๋‹ค๋ฃฌ๋‹ค.

์‘๋‹ต์ด ์ •์ƒ ์ข…๋ฃŒ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋Š”์ง€, ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์‘๋‹ต ์ฝ”๋“œ์™€ ์‘๋‹ต ๋ฌธ๊ตฌ๋ฅผ ์ฒซ ๋ฒˆ์งธ ํ–‰์— ์ž‘์„ฑํ•œ๋‹ค.

์‘๋‹ต ์ฝ”๋“œ์˜ ๊ฒฝ์šฐ ์ˆซ์ž๋กœ, ์‘๋‹ต ๋ฌธ๊ตฌ๋Š” ๋ฌธ์žฅ์œผ๋กœ ์“ฐ์—ฌ์žˆ์œผ๋ฉฐ ํ”„๋กœ๊ทธ๋žจ๊ณผ ์‚ฌ๋žŒ์—๊ฒŒ ๋ณด์—ฌ์ง€๋Š” ๊ฒƒ์ด ๊ฐ๊ฐ์˜ ๋ชฉ์ ์ด๋‹ค.

์ดํ›„ ์‘๋‹ต ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ํ™”๋ฉด์— ํ‘œ์‹œํ•˜๋Š” ์—ญํ• ๊นŒ์ง€๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์˜ ์—ญํ• ์ด๋‹ค.

 


์ •๋ง ๊ฐ„๋žตํ•˜๊ฒŒ ๋‹ค๋ฃจ๊ณ  ์žˆ์–ด์„œ ๋Œ€๋žต์ ์œผ๋กœ๋งŒ ์ž‘์„ฑํ•˜์˜€๋‹ค.

๋‚˜์ค‘์— ์กฐ๊ธˆ ๋” ์ž์„ธํ•œ ๋ถ€๋ถ„์„ ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค...!

Comments