Skip to content

Latest commit

ย 

History

History
151 lines (117 loc) ยท 5.08 KB

README.md

File metadata and controls

151 lines (117 loc) ยท 5.08 KB

2์žฅ URL๊ณผ ๋ฆฌ์†Œ์Šค


3์žฅ HTTP ๋ฉ”์‹œ์ง€

  • ๋ฉ”์‹œ์ง€๊ฐ€ ์–ด๋–ป๊ฒŒ ํ˜๋Ÿฌ๊ฐ€๋Š”๊ฐ€
  • HTTP ๋ฉ”์‹œ์ง€์˜ ์„ธ ๋ถ€๋ถ„(์‹œ์ž‘์ค„, ํ—ค๋”, ๊ฐœ์ฒด ๋ณธ๋ฌธ)
  • ์š”์ฒญ๊ณผ ์‘๋‹ต ๋ฉ”์‹œ์ง€์˜ ์ฐจ์ด
  • ์š”์ฒญ ๋ฉ”์‹œ์ง€๊ฐ€ ์ง€์›ํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ)๋“ค
  • ์‘๋‹ต ๋ฉ”์‹œ์ง€๊ฐ€ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฌ๋Ÿฌ ์ƒํƒœ ์ฝ”๋“œ๋“ฃ
  • ์—ฌ๋Ÿฌ HTTP ํ—ค๋”๋“ค์€ ๋ฌด์Šจ ์ผ์„ ํ•˜๋Š”๊ฐ€

HTTP Message

  • ๋ฉ”์‹œ์ง€๋Š” (ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ์˜) ์š”์ฒญ ๋ฉ”์‹œ์ง€๋‚˜ (์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ์˜) ์‘๋‹ต ๋ฉ”์‹œ์ง€๋กœ ๋ถ„๋ฅ˜๋œ๋‹ค.
  • Message๋Š” RequestLine/ResponseLine, Header, EntityBody๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  • RequestLine/ResponseLine๊ณผ Header๋Š” ์ค„๋ฐ”๊ฟˆ ๋ฌธ์ž์—ด๋กœ ๋๋‚œ๋‹ค.
  • EntityBody๋Š” Text๋‚˜ Binary Data๋ฅผ ํฌํ•จํ•  ์ˆ˜๋„ ์žˆ๊ณ  ๊ทธ๋ƒฅ ๋น„์–ด์žˆ์„ ์ˆ˜๋„ ์žˆ๋‹ค.
  • Header๋Š” EntityBody์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ค€๋‹ค.
    • Copntent-Type์€ ๋ณธ๋ฌธ์ด ๋ฌด์—‡์ธ์ง€ ์•Œ๋ ค์ค€๋‹ค.
    • Content-Length๋Š” ๋ณธ๋ฌธ์˜ ํฌ๊ธฐ๋ฅผ ๋งํ•ด์ค€๋‹ค.

RequestMessage

  • RequestMessage๋Š” ์›น ์„œ๋ฒ„์— ์–ด๋–ค ๋™์ž‘์„ ์š”๊ตฌํ•œ๋‹ค.
  • RequestMessage๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค.
<๋ฉ”์„œ๋“œ> <์š”์ฒญ URL> <๋ฒ„์ „>
<ํ—ค๋”>

<์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ>

RequestLine

  • Method, RequestURL, Version์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.
  • ๊ฐ ํ•„๋“œ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

Method

  • ์„œ๋ฒ„๊ฐ€ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์ˆ˜ํ–‰ํ•ด์ฃผ๊ธธ ๋ฐ”๋ผ๋Š” ๋™์ž‘
๋ฉ”์„œ๋“œ ์„ค๋ช… ๋ฉ”์‹œ์ง€ ๋ณธ๋ฌธ์ด ์žˆ๋Š”๊ฐ€?
GET ์„œ๋ฒ„์—์„œ ์–ด๋–ค ๋ฌธ์„œ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
HEAD ์„œ๋ฒ„์—์„œ ์–ด๋–ค ๋ฌธ์„œ์— ๋Œ€ํ•ด ํ—ค๋”๋งŒ ๊ฐ€์ ธ์˜จ๋‹ค.
POST ์„œ๋ฒ„๊ฐ€ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ธ๋‹ค. O
PUT ์„œ๋ฒ„์— ์š”์ฒญ ๋ฉ”์‹œ์ง€์˜ ๋ณธ๋ฌธ์„ ์ €์žฅํ•œ๋‹ค. O
TRACE ๋ฉ”์‹œ์ง€๊ฐ€ ํ”„๋ฝ์‹œ๋ฅผ ๊ฑฐ์ณ ์„œ๋ฒ„์— ๋„๋‹ฌํ•˜๋Š” ๊ณผ์ •์„ ์ถ”์ ํ•œ๋‹ค.
OPTIONS ์„œ๋ฒ„๊ฐ€ ์–ด๋–ค ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
DELETE ์„œ๋ฒ„์—์„œ ๋ฌธ์„œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
  • GET๊ณผ HEAD ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„์— ์–ด๋–ค ์ž‘์šฉ๋„ ์—†์œผ๋ฏ€๋กœ ์•ˆ์ „ํ•˜๋‹ค.

  • HEAD๋Š” GET์ฒ˜๋Ÿผ ํ–‰๋™ํ•˜์ง€๋งŒ ์„œ๋ฒ„๋Š” ์‘๋‹ต์œผ๋กœ ํ—ค๋”๋งŒ ๋Œ๋ ค์ค€๋‹ค. (์—”ํ„ฐํ‹ฐ ๋ณธ๋ฌธ์€ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๋Š”๋‹ค.)

    • ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค์ง€ ์•Š๊ณ ๋„ ์ƒํƒœ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ๊ฐœ์ฒด๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€, ๋ฆฌ์†Œ์Šค๊ฐ€ ๋ณ€๊ฒฝ๋˜์—ˆ๋Š”์ง€๋ฅผ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ๋‹ค.
  • PUT์€ ์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์˜ ๋ณธ๋ฌธ์„ ๊ฐ€์ง€๊ณ  ์š”์ฒญ URL์˜ ์ด๋ฆ„๋Œ€๋กœ ์ƒˆ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜, ์ด๋ฏธ URL์ด ์กด์žฌํ•œ๋‹ค๋ฉด ๋ณธ๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ ๊ต์ฒดํ•œ๋‹ค.

  • POST๋Š” ์„œ๋ฒ„์— ์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ธฐ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ๋‹ค.

  • TRACE ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์š”์ฒญ์„ ํ•  ๋•Œ, ๊ทธ ์š”์ฒญ์€ ๋ฐฉํ™”๋ฒฝ, ํ”„๋ฝ์‹œ, ๊ฒŒ์ดํŠธ์›จ์ด ๋“ฑ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ†ต๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋“ค์—๊ฒŒ๋Š” ์›๋ž˜์˜ HTTP ์š”์ฒญ์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ๋‹ค. TRACE๋Š” ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ž์‹ ์˜ ์š”์ฒญ์ด ์„œ๋ฒ„์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ ์–ด๋–ป๊ฒŒ ๋ณด์ด๊ฒŒ ๋˜๋Š”์ง€ ์•Œ๋ ค์ค€๋‹ค.

    ๋ชฉ์ ์ง€ ์„œ๋ฒ„์—์„œ loopback ์ง„๋‹จ์„ ์‹œ์ž‘ํ•œ๋‹ค. ํ”„๋ฝ์‹œ๋Š” POST ์š”์ฒญ์„ ๋ฐ”๋กœ ์„œ๋ฒ„๋กœ ํ†ต๊ณผ์‹œํ‚ค๋Š” ๋ฐ˜๋ฉด GET ์š”์ฒญ์€ ์›น ์บ์‹œ์™€ ๊ฐ™์ด ๋‹ค๋ฅธ HTTP ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „์†กํ•œ๋‹ค. TRACE๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹ค.

    client >> proxy
    TRACE /product-list.txt HTTP/1.1
    Accept: *
    Host: www.joes-hardware.com
    
    proxy >> www.joes-hardware.com server
    TRACE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    Via 1.1 proxy3.company.com
    
    server >> proxy
    HTTP/1.1 200 OK
    Content-type: text/plain
    Conent-length: 96
    
    TRACE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    Via 1.1 proxy3.company.com
    
    proxy >> client
    HTTP/1.1 200 OK
    Content-type: text/plain
    Conent-length: 96
    
    TRACE /product-list.txt HTTP/1.1
    Host: www.joes-hardware.com
    Accept: *
    Via 1.1 proxy3.company.com
    
  • OPTIONS๋Š” ์›น ์„œ๋ฒ„์—๊ฒŒ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•ด ์–ด๋–ค ๋ฉ”์„œ๋“œ๊ฐ€ ์ง€์›๋˜๋Š”์ง€ ๋ฌผ์–ด๋ณธ๋‹ค.

  • DELETE๋Š” ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•  ๊ฒƒ์„ ์š”์ฒญํ•œ๋‹ค.

RequestURL

  • ์š”์ฒญ ๋Œ€์ƒ์ด ๋˜๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • ์™„์ „ํ•œ URL์ด ์•„๋‹ ๊ฒฝ์šฐ ํ˜ธ์ŠคํŠธ/ํฌํŠธ๊ฐ€ ์ž์‹ ์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•œ๋‹ค.

Version

  • HTTP/<๋ฉ”์ด์ €>.<๋งˆ์ด๋„ˆ>
  • Major, Minor ๋ชจ๋‘ ์ •์ˆ˜์ด๋‹ค.

ResponseMessage

  • ResponseMessage๋Š” ์š”์ฒญ์˜ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋Œ๋ ค์ค€๋‹ค.
  • ResponseMessage๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ตฌ์„ฑ๋œ๋‹ค.
<๋ฒ„์ „> <์ƒํƒœ์ฝ”๋“œ> <์‚ฌ์œ  ๊ตฌ์ ˆ>
<ํ—ค๋”>

<์—”ํ‹ฐํ‹ฐ ๋ณธ๋ฌธ>

ResponseLine

  • Version, StatusCode, ReasonPhrase
  • ๊ฐ ํ•„๋“œ๋Š” ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

StatusCode

  • ์š”์ฒญ ์ค‘์— ๋ฌด์—‡์ด ์ผ์–ด๋‚ฌ๋Š”์ง€๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์„ธ์ž๋ฆฌ ์ˆซ์ž
์ •์˜๋œ ๋ฒ”์œ„ ๋ถ„๋ฅ˜
100-101 ์ •๋ณด
200-206 ์„ฑ๊ณต
300-305 ๋ฆฌ๋‹ค์ด๋ ‰์…˜
400-415 ํด๋ผ์ด์–ธํŠธ ์—๋Ÿฌ
500-505 ์„œ๋ฒ„ ์—๋Ÿฌ

ReasonPhrase

  • ์ˆซ์ž๋กœ ๋œ ์ƒํƒœ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์งง์€ ๋ฌธ๊ตฌ

Header

  • ์ด๋ฆ„/๊ฐ’ ์Œ์˜ ๋ชฉ๋ก์ด๋‹ค.

  • ์ผ๋ฐ˜ ํ—ค๋”, ์š”์ฒญ ํ—ค๋”, ์‘๋‹ต ํ—ค๋”, ์—”ํ„ฐํ‹ฐ ํ—ค๋” ๋“ฑ์ด ์žˆ๋‹ค.

EntityBody

  • Header๋‚˜ EntityBody๊ฐ€ ์—†๋”๋ผ๋„ HTTP Header ์ง‘ํ•ฉ์€ ํ•ญ์ƒ ๋นˆ ์ค„๋กœ ๋๋‚˜์•ผ ํ•œ๋‹ค.