HTTP ์„œ๋ฒ„ ํ—ค๋”๋ฅผ ํ™•์ธํ•˜๋Š” ์„œ๋น„์Šค

๋ชจ๋“  ์›น์‚ฌ์ดํŠธ์—์„œ๋Š” HTTP ํ—ค๋”๋ฅผ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ—ค๋“œ๋ผ์ธ ์ฃผ์ œ์— ๊ด€ํ•œ ๋งŽ์€ ๊ธฐ์‚ฌ๊ฐ€ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋™์•ˆ ์ถ•์ ๋œ ๊ฒฝํ—˜๊ณผ RFC ๋ฌธ์„œ๋ฅผ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ๋ชฉ ์ค‘ ์ผ๋ถ€๋Š” ํ•„์ˆ˜์ด๊ณ  ์ผ๋ถ€๋Š” ์˜ค๋ž˜๋˜์—ˆ์œผ๋ฉฐ ์ผ๋ถ€๋Š” ํ˜ผ๋ž€๊ณผ ๋ชจ์ˆœ์„ ์ผ์œผํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฐ๊ผฝ ๊ฐ€๋ฐฉ์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค ์›น ์„œ๋ฒ„ HTTP ํ—ค๋” ์ž๋™ ๊ฒ€์‚ฌ. ๋‹จ์ˆœํžˆ ํ—ค๋”๋งŒ ํ‘œ์‹œํ•˜๋Š” ๋‹ค๋ฅธ ๋งŽ์€ ์„œ๋น„์Šค์™€ ๋‹ฌ๋ฆฌ ์ด ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ‘œ์ค€ ํ—ค๋”์˜ ๊ฐ’์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‚˜๋งŒ์˜ ๋งž์ถค ํ—ค๋”๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
  3. HTTP ํ”„๋กœํ† ์ฝœ ๋ฒ„์ „์„ 1.0, 1.1, 2๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค(HTTP/2 ์ง€์› ์—ฌ๋ถ€ ํ™•์ธ).
  4. ์„œ๋ฒ„๋กœ ์ „์†ก๋  ์š”์ฒญ ๋ฐฉ๋ฒ•, ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋ฐ ์‚ฌํ›„ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.
  5. ๋˜ํ•œ beanbag์€ ์„œ๋ฒ„ ์‘๋‹ต์— Last-Modified ๋˜๋Š” ETag๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ If-Modified-Since, If-None-Match ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์˜ ์ •ํ™•์„ฑ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.


์šฐ๋ฆฌ๋Š” ๊ถ๊ทน์ ์ธ ์ง„์‹ค์ธ ์ฒ™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๊ฐœ๋ณ„ ์ฝ˜ํ…์ธ ์™€ ๊ฐœ๋ณ„ ํ”„๋กœ์ ํŠธ์— ๋”ฐ๋ผ ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์„œ๋น„์Šค๋Š” ๊ท€ํ•˜๊ฐ€ ์ฃผ์˜ํ•ด์•ผ ํ•  ์‚ฌํ•ญ์„ ์ •ํ™•ํ•˜๊ฒŒ ์•Œ๋ ค ์ฃผ๋ฉฐ ์ œ๋ชฉ์„ ํŽธ์ง‘ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜๋Š” ๊ฒ€์ฆ ์„œ๋น„์Šค๊ฐ€ ์ฃผ๋ชฉํ•˜๋Š” ์‚ฌํ•ญ์˜ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ์™œ ๊ทธ๋ ‡์Šต๋‹ˆ๊นŒ? Habrรฉ ๊ธฐ์‚ฌ์—์„œ.

ํ•„์ˆ˜ ํ—ค๋”

  • ๋‚ ์งœ
  • ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ์˜ ๋ฌธ์ž ์„ธํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” Content-Type(UTF-8 ๊ถŒ์žฅ)
  • ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ฝ˜ํ…์ธ  ์ธ์ฝ”๋”ฉ ์••์ถ•

์˜ค๋ž˜๋˜๊ณ  ๋ถˆํ•„์š”ํ•œ ํ—ค๋”

  • ์ž์„ธํ•œ ์›น ์„œ๋ฒ„ ๋ฒ„์ „์ด ์žˆ๋Š” ์„œ๋ฒ„
  • X-Power-By
  • X_ASPNET ๋ฒ„์ „
  • ๋งŒ๋ฃŒ
  • ํ”„๋ผ๊ทธ๋งˆ
  • P3P
  • ํ†ตํ•˜๋‹ค
  • X-UA ํ˜ธํ™˜

๋ณด์•ˆ์„ ์œ„ํ•ด ๋ฐ”๋žŒ์งํ•œ ํ—ค๋”

  • X-์ฝ˜ํ…์ธ  ์œ ํ˜•-์˜ต์…˜
  • X-XSS-๋ณดํ˜ธ
  • ์—„๊ฒฉํ•œ ์šด์†ก ๋ณด์•ˆ
  • ์ถ”์ฒœ์ธ ์ •์ฑ…
  • ๊ธฐ๋Šฅ ์ •์ฑ…
  • ์ธ๋ผ์ธ ์Šคํฌ๋ฆฝํŠธ ๋ฐ ์Šคํƒ€์ผ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด Content-Security-Policy ๋˜๋Š” Content-Security-Policy-Report-Only๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์บ์‹ฑ์šฉ ํ—ค๋”

์บ์‹œ ์ˆ˜๋ช…์ด ๊ธด ์ •์  ์ฝ˜ํ…์ธ ์˜ ๊ฒฝ์šฐ ํ•„์ˆ˜์ด๋ฉฐ, ์บ์‹œ ์ˆ˜๋ช…์ด ์งง์€ ๋™์  ์ฝ˜ํ…์ธ ์˜ ๊ฒฝ์šฐ ๋งค์šฐ ๋ฐ”๋žŒ์งํ•ฉ๋‹ˆ๋‹ค.

  • ๋งˆ์ง€๋ง‰ ์ˆ˜์ •
  • Eํƒœ๊ทธ
  • ์บ์‹œ ์ œ์–ด
  • ๋‹ค๋ฅด๋‹ค
  • ์„œ๋ฒ„๊ฐ€ ํ—ค๋”์ธ If-Modified-Since ๋ฐ If-None-Match์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‘๋‹ตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

HTTP / 2

์ด์ œ ์„œ๋ฒ„๋Š” HTTP/2๋ฅผ ์ง€์›ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋น„์Šค๋Š” HTTP/2๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์˜ ์ž‘๋™์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ HTTP/2๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด HTTP/1.1์„ ์„ ํƒํ•˜์‹ญ์‹œ์˜ค.

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€