inspeep

์›น์‚ฌ์ดํŠธ๊ฐ€ ์•ˆ ์—ด๋ฆด ๋•Œ: HTTP 403ยท404ยท429ยท500ยท503์„ ๊ตฌ๋ถ„ํ•˜๋Š” ์‹ค์Šต ๊ฐ€์ด๋“œ

์กฐํšŒ ์ˆ˜ 7
์ถ”์ฒœ ์ˆ˜ 0
๋Œ“๊ธ€ 0

์›น์‚ฌ์ดํŠธ ์šด์˜ ยท ์˜ค๋ฅ˜ ์ง„๋‹จ ยท ๋กœ์ปฌ ์‹ค์Šต

๊ฐ™์€ โ€œ์ ‘์† ๋ถˆ๊ฐ€โ€๋ผ๋„ ์ ‘๊ทผ ์ฐจ๋‹จ, ์—†๋Š” ์ฃผ์†Œ, ์š”์ฒญ ์ œํ•œ, ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์„ค์ •์„ ๋ฐ”๊พธ๊ธฐ ์ „์— ์‘๋‹ต์„ ์ฝ๋Š” ์ˆœ์„œ๋ฅผ ์ตํ˜€ ๋ณด์„ธ์š”.

์ž‘์„ฑยท์‹ค์Šต ๊ฒ€์ฆ: AI ๋ณด์กฐ ์ž‘์„ฑ ๋ฐ ๋กœ์ปฌ ์‹คํ–‰ ํ™•์ธ ยท 2026๋…„ 10์›” 5์ผ
๋Œ€์ƒ: ์›น์‚ฌ์ดํŠธ๋ฅผ ์ง์ ‘ ์šด์˜ํ•˜๋Š” ์ดˆ๋ณด์ž ยท ์ค€๋น„๋ฌผ: Windows ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ, ๋กœ์ปฌ ์‹ค์Šต์šฉ Python 3

์‚ฌ์ดํŠธ๊ฐ€ ๋А๋ฆฌ๊ฑฐ๋‚˜ ๊ธ€์ด ์—ด๋ฆฌ์ง€ ์•Š์œผ๋ฉด ์„œ๋ฒ„ ์šฉ๋Ÿ‰๋ถ€ํ„ฐ ๋Š˜๋ฆฌ๊ณ  ์‹ถ์€ ์ƒ๊ฐ์ด ๋“ญ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„๊ฐ€ ๋ฉ€์ฉกํ•ด๋„ ๋ณด์•ˆ ์„œ๋น„์Šค๊ฐ€ ์š”์ฒญ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๊ณ , ํŠน์ • ์ฃผ์†Œ๋งŒ ์ž˜๋ชป ์—ฐ๊ฒฐ๋ผ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์›์ธ์ด ํ™•์ธ๋˜์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์บ์‹œ์™€ ๋ฐฉํ™”๋ฒฝ์„ ๋™์‹œ์— ๋ฐ”๊พธ๋ฉด ํ™”๋ฉด์ด ์ž ๊น ์ •์ƒ์œผ๋กœ ๋ณด์—ฌ๋„ ๋ฌด์—‡์ด ๋ฌธ์ œ์˜€๋Š”์ง€ ์•Œ๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค.

์ด ๊ธ€์€ ์ƒํƒœ ์ฝ”๋“œ ์•”๊ธฐ๋ณด๋‹ค ํ™•์ธ ์ˆœ์„œ์— ์ง‘์ค‘ํ•ฉ๋‹ˆ๋‹ค. ๋จผ์ € ๋ธŒ๋ผ์šฐ์ €์™€ ๋ช…๋ น์ค„์—์„œ ๊ฐ™์€ ์ฃผ์†Œ์˜ ์‘๋‹ต์„ ๋น„๊ตํ•˜๊ณ , ๊ทธ๋‹ค์Œ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ์˜ค๋ฅ˜ ์‘๋‹ต์„ ๋งŒ๋“ค์–ด ๋ด…๋‹ˆ๋‹ค. ์‹ค์Šต์€ ์šด์˜ ์‚ฌ์ดํŠธ์˜ ์„ค์ •์„ ๋ฐ”๊พธ์ง€ ์•Š๊ณ  ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๊ธ€์— ํฌํ•จ๋œ ๊ฒฐ๊ณผ๋Š” ์•„๋ž˜ ์˜ˆ์ œ ์„œ๋ฒ„๋ฅผ ๊ฒฉ๋ฆฌ๋œ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•ด ํ™•์ธํ•œ ๊ฒƒ์ด๋ฉฐ, ํŠน์ • ์„œ๋น„์Šค์˜ ์žฅ์• ๋ฅผ ๊ฒฝํ—˜ํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ ์‚ฌ๋ก€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

  1. ์‘๋‹ต์ด ์˜ค๋Š” ์œ„์น˜๋ถ€ํ„ฐ ํ™•์ธํ•˜๊ธฐ
  2. ์ž์ฃผ ๋งŒ๋‚˜๋Š” ์ƒํƒœ ์ฝ”๋“œ
  3. Windows์™€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ํ™•์ธํ•˜๊ธฐ
  4. Python์œผ๋กœ ์˜ค๋ฅ˜ ์‘๋‹ต ์žฌํ˜„ํ•˜๊ธฐ
  5. ์‹ค์ œ ์‹ค์Šต ๊ฒฐ๊ณผ์™€ ํ•ด์„
  6. ์šด์˜ ์‚ฌ์ดํŠธ์˜ ์ ๊ฒ€ ์ˆœ์„œ
  7. ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ
  8. ์ฐธ๊ณ  ์ž๋ฃŒ


1. ์˜ค๋ฅ˜ ํ™”๋ฉด์€ ์–ด๋””์—์„œ ๋งŒ๋“ค์–ด์กŒ์„๊นŒ์š”?

์‚ฌ์šฉ์ž๋Š” ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฃผ์†Œ ํ•˜๋‚˜๋ฅผ ์—ด์ง€๋งŒ ์š”์ฒญ์€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นฉ๋‹ˆ๋‹ค. CDN์ด๋‚˜ ์—ญ๋ฐฉํ–ฅ ํ”„๋ก์‹œ๋ฅผ ์“ฐ๋Š” ์‚ฌ์ดํŠธ๋ผ๋ฉด ์š”์ฒญ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋„์ฐฉํ•˜๊ธฐ ์ „์— ์‘๋‹ต์ด ๋๋‚  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ™”๋ฉด์— ์˜ค๋ฅ˜๊ฐ€ ๋ณด์ธ๋‹ค๋Š” ์ด์œ ๋งŒ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๊ณ ์žฅ ๋‚ฌ๋‹ค๊ณ  ๊ฒฐ๋ก  ๋‚ด๋ฆด ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ง์ ‘ ์ œ์ž‘ํ•œ ์š”์ฒญ ํ๋ฆ„๋„์ž…๋‹ˆ๋‹ค. ์ค‘๊ฐ„ ์„œ๋น„์Šค๊ฐ€ ์‘๋‹ตํ•˜๋ฉด ์›๋ณธ ์„œ๋ฒ„์— ๊ฐ™์€ ์š”์ฒญ์˜ ๊ธฐ๋ก์ด ์—†์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‘๋‹ต์„ ์ฝ์„ ๋•Œ๋Š” ์„ธ ๊ฐ€์ง€๋ฅผ ๋ฌถ์–ด์„œ ๋ด…๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ๋Š” ์ฒ˜๋ฆฌ ๊ฒฐ๊ณผ์˜ ๋ถ„๋ฅ˜, ํ—ค๋”๋Š” ์ด๋™ ์ฃผ์†Œ์™€ ์žฌ์‹œ๋„ ๊ฐ„๊ฒฉ ๊ฐ™์€ ๋ถ€๊ฐ€ ์ •๋ณด, ๋ณธ๋ฌธ์€ ํ™”๋ฉด์ด๋‚˜ ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค. ๋ณธ๋ฌธ์˜ โ€œ์‹คํŒจโ€๋ผ๋Š” ๋‹จ์–ด์™€ ์‹ค์ œ HTTP ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅผ ์ˆ˜๋„ ์žˆ์œผ๋ฏ€๋กœ ๋ณธ๋ฌธ๋งŒ ๋ณด๊ณ  ํŒ๋‹จํ•˜์ง€ ๋งˆ์„ธ์š”.

์›๋ณธ ์„œ๋ฒ„ ๋กœ๊ทธ์— ์š”์ฒญ์ด ๋ณด์ด์ง€ ์•Š์œผ๋ฉด ๋จผ์ € ์ค‘๊ฐ„ ์„œ๋น„์Šค์˜ ๋ณด์•ˆ ์ด๋ฒคํŠธ์™€ ๋ผ์šฐํŒ…์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋กœ๊ทธ์— ๋‚จ์•„ ์žˆ๋‹ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๊ทธ๋ฅผ ์ด์–ด์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ๋กœ๊ทธ ์ˆ˜์ง‘ ์ง€์—ฐ์ด๋‚˜ ๊ธฐ๋ก ๋Œ€์ƒ ์ œ์™ธ๋„ ์žˆ์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋กœ๊ทธ๊ฐ€ ์—†๋‹ค๋Š” ์‚ฌ์‹ค ํ•˜๋‚˜๋งŒ์œผ๋กœ ์ฐจ๋‹จ ์œ„์น˜๋ฅผ ํ™•์ •ํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.


2. ์ž์ฃผ ๋งŒ๋‚˜๋Š” ์ƒํƒœ ์ฝ”๋“œ์™€ ์ฒซ ํ™•์ธ ํ•ญ๋ชฉ

HTTP ์ƒํƒœ ์ฝ”๋“œ๋Š” ์•ž์ž๋ฆฌ๋กœ ํฐ ๋ฒ”์ฃผ๋ฅผ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. 2xx๋Š” ์„ฑ๊ณต, 3xx๋Š” ์ด๋™ยท์บ์‹œ ๊ด€๋ จ ์‘๋‹ต, 4xx๋Š” ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, 5xx๋Š” ์„œ๋ฒ„ ์ธก ์‹คํŒจ ๋ฒ”์ฃผ์ž…๋‹ˆ๋‹ค. ๋ฒ”์ฃผ๋Š” ์ ๊ฒ€ ๋ฐฉํ–ฅ์„ ์ขํžˆ๋Š” ์ถœ๋ฐœ์ ์ด๋ฉฐ, 4xx๋ผ๊ณ  ํ•ด์„œ ์‚ฌ์šฉ์ž ์‹ค์ˆ˜๋ผ๋Š” ๋œป์€ ์•„๋‹™๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜๋ฏธ๋Š” HTTP ํ‘œ์ค€์˜ ์ƒํƒœ ์ฝ”๋“œ ์ •์˜๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ •๋ฆฌํ–ˆ์Šต๋‹ˆ๋‹ค.

์ฝ”๋“œ์˜๋ฏธ์ฒซ ํ™•์ธ ํ•ญ๋ชฉ
200์š”์ฒญ ์„ฑ๊ณต๋ณธ๋ฌธ๋„ ์˜๋„ํ•œ ๋‚ด์šฉ์ธ์ง€ ํ™•์ธ
302์ž„์‹œ๋กœ ๋‹ค๋ฅธ ์ฃผ์†Œ ์•ˆ๋‚ดLocation๊ณผ ์ตœ์ข… ๋„์ฐฉ ์ฃผ์†Œ
403์š”์ฒญ ์ดํ–‰ ๊ฑฐ๋ถ€๊ถŒํ•œยท์ ‘๊ทผ ์ •์ฑ…ยท๋ณด์•ˆ ์ด๋ฒคํŠธ
404์š”์ฒญํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐพ์ง€ ๋ชปํ•จ์ฃผ์†Œยท๊ฒŒ์‹œ๊ธ€ ์กด์žฌ ์—ฌ๋ถ€ยท๋ผ์šฐํŒ…
429์š”์ฒญ ํšŸ์ˆ˜ ์ œํ•œํ˜ธ์ถœ ์ฃผ๊ธฐยท์žฌ์‹œ๋„ ์ •์ฑ…ยท์ œํ•œ ๋‹จ์œ„
500์ฒ˜๋ฆฌ๋ฅผ ๋ง‰๋Š” ์˜ˆ์ƒํ•˜์ง€ ๋ชปํ•œ ๋‚ด๋ถ€ ์ƒํ™ฉํ•ด๋‹น ์‹œ๊ฐ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์˜ค๋ฅ˜ ๋กœ๊ทธ
503์ผ์‹œ์ ์œผ๋กœ ์š”์ฒญ ์ฒ˜๋ฆฌ ๋ถˆ๊ฐ€์œ ์ง€๋ณด์ˆ˜ยท๊ณผ๋ถ€ํ•˜ยท์—ฐ๊ฒฐ ๊ฐ€๋Šฅํ•œ ์˜์กด ์„œ๋น„์Šค

403๊ณผ 404์˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์–ด๋А ์„ค์ •์„ ๋ฐ”๊ฟ€์ง€ ๊ฒฐ์ •ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ฐ™์€ ๊ฒŒ์‹œ๊ธ€์ด ์ผ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์—ด๋ฆฌ๊ณ  ๋ช…๋ น์ค„์—์„œ๋Š” ๋ง‰ํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ์†Œ๋Š” ๊ฐ™์•„๋„ ์ฟ ํ‚ค, ์š”์ฒญ ํ—ค๋”, ์ ‘์† ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋‘˜์˜ ์ฐจ์ด๋ฅผ ์ ์–ด ๋‘๋ฉด ์›์ธ ํ›„๋ณด๋ฅผ ์ขํž ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

429์˜ ์˜๋ฏธ๋Š” RFC 6585์˜ ๋ณ„๋„ ์ •์˜๋ฅผ ์ฐธ๊ณ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œํ•œ์˜ ๋Œ€์ƒ์ด IP์ธ์ง€ ๊ณ„์ •์ธ์ง€, ๋ชจ๋“  ์ฃผ์†Œ์ธ์ง€ ํŠน์ • API์ธ์ง€๋Š” ์„œ๋น„์Šค๊ฐ€ ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ๋งŒ์œผ๋กœ ์ œํ•œ ๋ฒ”์œ„๋ฅผ ์ถ”์ธกํ•˜๊ฑฐ๋‚˜ IP๋ฅผ ๋ฐ”๊ฟ” ์šฐํšŒํ•˜๊ธฐ๋ณด๋‹ค ์‹ค์ œ ์ ์šฉ ๊ทœ์น™๊ณผ ์ •์ƒ ํ˜ธ์ถœ๋Ÿ‰์„ ๋Œ€์กฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


3. Windows์—์„œ ์‘๋‹ต ํ—ค๋”๋งŒ ํ™•์ธํ•˜๊ธฐ

Windows ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ ๋˜๋Š” PowerShell์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์€ ์›น์‚ฌ์ดํŠธ ์ฝ”๋“œ์— ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ์ง„๋‹จํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์„œ๋ฒ„๋ฅผ ์•„์ง ์‹คํ–‰ํ•˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์€ ์—ฐ๊ฒฐ ์‹คํŒจ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์‹คํ–‰ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ์ ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค.

curl.exe -sS -D - -o NUL "http://127.0.0.1:8765/ok"

-sS๋Š” ์ง„ํ–‰ ํ‘œ์‹œ๋ฅผ ์ค„์ด๋ฉด์„œ ์—ฐ๊ฒฐ ์‹คํŒจ ๋ฉ”์‹œ์ง€๋Š” ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. -D -๋Š” ์‘๋‹ต ํ—ค๋”๋ฅผ ํ„ฐ๋ฏธ๋„์— ์ถœ๋ ฅํ•˜๊ณ , -o NUL์€ ๋ณธ๋ฌธ์„ ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. Linux์™€ macOS์—์„œ๋Š” curl๊ณผ /dev/null์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ช…๋ น์€ GET ์š”์ฒญ์ด๋ฉฐ, -I๋กœ ๋งŒ๋“œ๋Š” HEAD ์š”์ฒญ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ GET๊ณผ HEAD๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ๋‹ฌ๋ผ์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹ค์ œ ์‚ฌ์ดํŠธ๋ฅผ ํ™•์ธํ•  ๋•Œ๋Š” ๋กœ์ปฌ ์ฃผ์†Œ ๋Œ€์‹  ๋ณธ์ธ์ด ์šด์˜ํ•˜๋Š” ์ •์ƒ URL์„ ๋„ฃ์Šต๋‹ˆ๋‹ค. ๋ช‡ ๋ฒˆ์˜ ๋น„๊ต ์š”์ฒญ์ด๋ฉด ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์žฅ์•  ํ™•์ธ์„ ์œ„ํ•ด ๋ฐ˜๋ณต ํ˜ธ์ถœ ๋ฃจํ”„๋ฅผ ๋งŒ๋“ค๋ฉด ๊ธฐ์กด ๋ถ€ํ•˜์™€ ์ง„๋‹จ ์š”์ฒญ์ด ์„ž์—ฌ ๊ธฐ๋ก์ด ๋” ๋ณต์žกํ•ด์ง‘๋‹ˆ๋‹ค. ์„ธ์…˜ ์ฟ ํ‚ค๋‚˜ ์ธ์ฆ ํ† ํฐ์„ ๊ฒฐ๊ณผ์™€ ํ•จ๊ป˜ ๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š” ๊ฒƒ๋„ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” Network์˜ ๋ฌธ์„œ ์š”์ฒญ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค

Chrome์—์„œ F12๋ฅผ ๋ˆŒ๋Ÿฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ์—ด๊ณ  Network ํƒญ์œผ๋กœ ์ด๋™ํ•œ ๋‹ค์Œ ํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ์—ฝ๋‹ˆ๋‹ค. ๋ฌธ์„œ ์š”์ฒญ์„ ์„ ํƒํ•ด Status Code์™€ Response Headers๋ฅผ ํ™•์ธํ•˜์„ธ์š”. ์ด๋ฏธ์ง€๋‚˜ ๊ด‘๊ณ  ์š”์ฒญ์˜ ์˜ค๋ฅ˜๊ฐ€ ํŽ˜์ด์ง€ ๋ณธ๋ฌธ ์˜ค๋ฅ˜์ฒ˜๋Ÿผ ๋ณด์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์š”์ฒญ ์ฃผ์†Œ์™€ ์œ ํ˜•์„ ํ•จ๊ป˜ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋™ ๊ณผ์ •์„ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด Preserve log๋ฅผ ์ผญ๋‹ˆ๋‹ค.

๋ฉ”์ธ ๋ฌธ์„œ๋Š” 200์ธ๋ฐ ์‚ฌ์ง„ ํ•œ ์žฅ๋งŒ 404๋ผ๋ฉด ์ „์ฒด ์„œ๋ฒ„ ์žฅ์• ๋กœ ์ฒ˜๋ฆฌํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ํ™”๋ฉด์€ ์—ด๋ ค๋„ ๋ฐ์ดํ„ฐ ์กฐํšŒ API๊ฐ€ 500์ด๋ฉด ์ผ๋ถ€ ๊ธฐ๋Šฅ์ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์ƒ ํŽ˜์ด์ง€์™€ ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธด ๊ธฐ๋Šฅ์˜ ์š”์ฒญ์„ ๋น„๊ตํ•˜๋ฉด ํ™•์ธํ•ด์•ผ ํ•  ๋ฒ”์œ„๋ฅผ ์ž‘๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


4. ์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ์˜ค๋ฅ˜ ์‘๋‹ต 7๊ฐ€์ง€ ๋งŒ๋“ค๊ธฐ

๋นˆ ํด๋”์— http_status_demo.py ํŒŒ์ผ์„ ๋งŒ๋“ค๊ณ  ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ํŒจํ‚ค์ง€ ์—†์ด Python ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” 127.0.0.1์—๋งŒ ์—ฐ๊ฒฐํ•ด ์™ธ๋ถ€ ๊ณต๊ฐœ๋ฅผ ์˜๋„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•™์Šต์šฉ ์˜ˆ์ œ์ด๋ฏ€๋กœ ์šด์˜ ์„œ๋ฒ„๋กœ ๋ฐฐํฌํ•˜์ง€ ๋งˆ์„ธ์š”.

from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlsplit

class DemoHandler(BaseHTTPRequestHandler):
    def do_GET(self):
        path = urlsplit(self.path).path
        routes = {
            '/ok': (200, '์ •์ƒ ์‘๋‹ต', {}),
            '/missing': (404, '์š”์ฒญํ•œ ํŽ˜์ด์ง€๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค', {}),
            '/forbidden': (403, '์ ‘๊ทผ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค', {}),
            '/limited': (429, '์š”์ฒญ ํšŸ์ˆ˜ ์ œํ•œ ์˜ˆ์‹œ', {'Retry-After': '30'}),
            '/error': (500, '๋‚ด๋ถ€ ์˜ค๋ฅ˜ ์˜ˆ์‹œ', {}),
            '/busy': (503, '์ผ์‹œ์  ์ด์šฉ ๋ถˆ๊ฐ€ ์˜ˆ์‹œ', {'Retry-After': '60'}),
            '/redirect': (302, '๋‹ค๋ฅธ ์ฃผ์†Œ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค', {'Location': '/ok'}),
        }
        status, message, headers = routes.get(
            path, (404, '๋“ฑ๋กํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค', {})
        )
        body = (message + '\n').encode('utf-8')
        self.send_response(status)
        self.send_header('Content-Type', 'text/plain; charset=utf-8')
        self.send_header('Content-Length', str(len(body)))
        self.send_header('Cache-Control', 'no-store')
        for name, value in headers.items():
            self.send_header(name, value)
        self.end_headers()
        self.wfile.write(body)

    def log_message(self, format, *args):
        pass

if __name__ == '__main__':
    print('์‹ค์Šต ์„œ๋ฒ„: http://127.0.0.1:8765/ok')
    print('์ข…๋ฃŒํ•˜๋ ค๋ฉด Ctrl+C๋ฅผ ๋ˆ„๋ฅด์„ธ์š”.')
    server = HTTPServer(('127.0.0.1', 8765), DemoHandler)
    try:
        server.serve_forever()
    except KeyboardInterrupt:
        pass
    finally:
        server.server_close()

๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์—์„œ ํŒŒ์ผ์ด ์žˆ๋Š” ํด๋”๋กœ ์ด๋™ํ•œ ๋’ค ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. Windows Python Launcher๊ฐ€ ์—†๋‹ค๋ฉด ์„ค์น˜ ํ™˜๊ฒฝ์— ๋งž๋Š” python ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์„ธ์š”. ์‹คํ–‰ ์ฐฝ์€ ๊ทธ๋Œ€๋กœ ๋‘๊ณ  ๋ณ„๋„ ํ„ฐ๋ฏธ๋„์—์„œ curl ๋ช…๋ น์„ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

py -3 http_status_demo.py

# ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰
curl.exe -sS -D - -o NUL "http://127.0.0.1:8765/limited"
curl.exe -sS -D - -o NUL "http://127.0.0.1:8765/busy"

์‹ค์ œ๋กœ ๋ถ™์—ฌ ๋„ฃ์„ ๋•Œ # ๋‹ค๋ฅธ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰์€ ์„ค๋ช…์ด๋ฏ€๋กœ Windows ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ์— ์ž…๋ ฅํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด ์‹คํ–‰ ์ฐฝ์—์„œ Ctrl+C๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ์ด๋ฏธ ์‚ฌ์šฉ ์ค‘์ธ ํฌํŠธ๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์˜ค๋ฉด ๊ธฐ์กด ์‹ค์Šต ์„œ๋ฒ„๊ฐ€ ๋‚จ์•„ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ฝ”๋“œ์˜ 8765์™€ ํ™•์ธ ๋ช…๋ น์˜ ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ™์€ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค.

์ด ์„œ๋ฒ„๋Š” ์š”์ฒญ๋Ÿ‰์„ ์ธก์ •ํ•ด์„œ ์ œํ•œํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹™๋‹ˆ๋‹ค. /limited์— ์ ‘๊ทผํ•˜๋ฉด ํ•ญ์ƒ 429๋ฅผ ๋ณด๋‚ด๋„๋ก ๋งŒ๋“  ๊ต์œก์šฉ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. /error๋„ ์˜ˆ์™ธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋Œ€์‹  500 ์‘๋‹ต์„ ์ง์ ‘ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์›์ธ ์žฌํ˜„๊ณผ ์‘๋‹ต ํ˜•์‹ ์žฌํ˜„์€ ๋‹ค๋ฅด๋‹ค๋Š” ์ ์„ ๊ตฌ๋ถ„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


5. ์‹ค์ œ ์‹ค์Šต ๊ฒฐ๊ณผ: ์ฃผ์†Œ๊ฐ€ ๋ฐ”๋€Œ๋ฉด ๋ฌด์—‡์ด ๋‹ฌ๋ผ์งˆ๊นŒ?

์˜ˆ์ œ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ๋กœ์ปฌ HTTP ์„œ๋ฒ„๋กœ ์‹คํ–‰ํ•˜๊ณ  ์•„๋ž˜ ์ผ๊ณฑ ์ฃผ์†Œ๋ฅผ GET์œผ๋กœ ํ˜ธ์ถœํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌ๋””๋ ‰์…˜์„ ์ž๋™์œผ๋กœ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ ์ƒํƒœ ์ฝ”๋“œ์™€ ํ—ค๋”๋ฅผ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณ„๋„ ํ™•์ธ์—์„œ๋Š” /redirect๋ฅผ ๋”ฐ๋ผ๊ฐ€ ์ตœ์ข… ์‘๋‹ต์ด 200์ธ ๊ฒƒ๋„ ๊ฒ€์ฆํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณธ๋ฌธ ๋ฐ”์ดํŠธ ์ˆ˜์™€ Content-Length์˜ ์ผ์น˜๋„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

์‹ค์Šต ๊ฒฝ๋กœํ™•์ธํ•œ ์ฝ”๋“œ์ถ”๊ฐ€ ํ™•์ธ
/ok200์ •์ƒ ๋ฉ”์‹œ์ง€
/missing404์—†๋Š” ํŽ˜์ด์ง€ ์•ˆ๋‚ด
/forbidden403๊ฑฐ๋ถ€ ๋ฉ”์‹œ์ง€
/limited429Retry-After: 30
/error500๋‚ด๋ถ€ ์˜ค๋ฅ˜ ์˜ˆ์‹œ ๋ฉ”์‹œ์ง€
/busy503Retry-After: 60
/redirect302Location: /ok ยท ๋”ฐ๋ผ๊ฐ€๋ฉด 200

์‹ค์Šต A: ์ด๋™์„ ๋”ฐ๋ผ๊ฐ€๊ธฐ ์ „๊ณผ ํ›„ ๋น„๊ต

curl.exe -sS -D - -o NUL "http://127.0.0.1:8765/redirect"
curl.exe -sS -L -D - -o NUL "http://127.0.0.1:8765/redirect"

์ฒซ ๋ช…๋ น์€ 302์™€ ์ด๋™ ์ฃผ์†Œ๋ฅผ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ๋‘ ๋ฒˆ์งธ ๋ช…๋ น์€ -L ๋•Œ๋ฌธ์— ์ด๋™์„ ๋”ฐ๋ผ๊ฐ€๋ฉฐ, ์ด ์˜ˆ์ œ์—์„œ๋Š” 302์™€ ์ตœ์ข… 200 ์‘๋‹ต ํ—ค๋”๋ฅผ ์ฐจ๋ก€๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์ข… ๊ฒฐ๊ณผ๋งŒ ์ €์žฅํ•˜๋Š” ๋ชจ๋‹ˆํ„ฐ๋ง์—์„œ๋Š” ์ค‘๊ฐ„ ์ด๋™์ด ์ž˜ ์•ˆ ๋ณด์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•œ ๋’ค 200์ด ๋‚˜์˜จ ์ƒํ™ฉ์„ ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ ์„ฑ๊ณต์œผ๋กœ ์˜คํ•ดํ•˜์ง€ ์•Š๋„๋ก ์ตœ์ข… ์ฃผ์†Œ์™€ ๋ณธ๋ฌธ๊นŒ์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


์‹ค์Šต B: ์žฌ์‹œ๋„ ์•ˆ๋‚ด๋ฅผ ์ฝ์–ด ๋ณด๊ธฐ

/limited์—๋Š” 30, /busy์—๋Š” 60์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ˆ์ œ์˜ ์ˆซ์ž๋Š” ๊ฐ๊ฐ ๊ธฐ๋‹ค๋ฆด ์ดˆ๋ฅผ ๋œปํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ์„œ๋น„์Šค์˜ Retry-After๋Š” ์ดˆ ๋˜๋Š” HTTP ๋‚ ์งœ ํ˜•ํƒœ์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ—ค๋”๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. Retry-After ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•ด ํ˜•์‹์„ ํ™•์ธํ•˜์„ธ์š”.

์ค‘์š”ํ•œ ์ฐจ์ด๋Š” curl์ด ์ด ํ—ค๋”๋ฅผ ์ถœ๋ ฅํ–ˆ๋‹ค๊ณ  ํ•ด์„œ ํ˜„์žฌ ๋ช…๋ น์ด ์ž๋™์œผ๋กœ ๊ธฐ๋‹ค๋ฆฌ๊ฑฐ๋‚˜ ์žฌ์‹œ๋„ํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ๋ฐ˜๋ณต ์ž‘์—… ํ”„๋กœ๊ทธ๋žจ์—๋Š” ๋ณ„๋„์˜ ์žฌ์‹œ๋„ ํšŸ์ˆ˜์™€ ๋Œ€๊ธฐ ์ •์ฑ…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ์ œํ•œ์—์„œ ์ฆ‰์‹œ ์žฌ์‹œ๋„ํ•˜๋ฉด ์ œํ•œ์ด ๊ณ„์†๋  ์ˆ˜ ์žˆ๊ณ , ์ƒํƒœ ๋ณ€๊ฒฝ ์š”์ฒญ์„ ๋ฌด์กฐ๊ฑด ์žฌ์‹œ๋„ํ•˜๋ฉด ์ค‘๋ณต ์ž‘์—…์ด ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์‘๋‹ต ์ฝ”๋“œ์™€ ์š”์ฒญ์˜ ์„ฑ๊ฒฉ์„ ํ•จ๊ป˜ ๊ณ ๋ คํ•˜์„ธ์š”.


6. ์šด์˜ ์‚ฌ์ดํŠธ์—์„œ๋Š” ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค

์‹ค์Šต์ด ๋๋‚ฌ๋‹ค๋ฉด ์‹ค์ œ ์‚ฌ์ดํŠธ์—์„œ๋Š” ์ •์ƒ ์ฃผ์†Œ ํ•˜๋‚˜์™€ ๋ฌธ์ œ ์ฃผ์†Œ ํ•˜๋‚˜๋ฅผ ๊ณจ๋ผ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ™์€ ์‹œ๊ฐ, ๊ฐ™์€ ์ ‘์† ํ™˜๊ฒฝ์—์„œ ํ™•์ธํ•˜๋ฉด ์ฐจ์ด๋ฅผ ํ•ด์„ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ง„ ์˜ค๋ฅ˜๋ผ๋ฉด ์ด๋ฏธ์ง€ URL, ๋Œ“๊ธ€ ์˜ค๋ฅ˜๋ผ๋ฉด ๋Œ“๊ธ€ ์š”์ฒญ์„ ์„ ํƒํ•˜์„ธ์š”. ๋ชจ๋“  ํŽ˜์ด์ง€์— ๊ฐ™์€ ์„ค์ •์„ ์ ์šฉํ•˜๊ธฐ ์ „์— ์˜ํ–ฅ ๋ฒ”์œ„๋ฅผ ์ ๋Š” ๊ฒƒ์ด ์šฐ์„ ์ž…๋‹ˆ๋‹ค.

  1. ๊ธฐ๋ก: ๋ฐœ์ƒ ์‹œ๊ฐ๊ณผ ์‹œ๊ฐ„๋Œ€, ์š”์ฒญ ๊ฒฝ๋กœ, ๋ฉ”์„œ๋“œ, ์ฝ”๋“œ, ๋กœ๊ทธ์ธ ์—ฌ๋ถ€๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.
  2. ์œ„์น˜ ํ™•์ธ: ํ”„๋ก์‹œยทCDN์˜ ์ด๋ฒคํŠธ์™€ ์›๋ณธ ์„œ๋ฒ„ ๋กœ๊ทธ๋ฅผ ๋Œ€์กฐํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ์‹๋ณ„์ž๊ฐ€ ์žˆ์œผ๋ฉด ํ•จ๊ป˜ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  3. ๋น„๊ต: ์ •์ƒ ์š”์ฒญ๊ณผ ๋‹ค๋ฅธ ์ฟ ํ‚คยทํ—ค๋”ยท์ฃผ์†Œ ์กฐ๊ฑด์„ ์ฐพ์•„๋ด…๋‹ˆ๋‹ค. ๋ฏผ๊ฐํ•œ ๊ฐ’์€ ๊ณต์œ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  4. ์ˆ˜์ •: ๊ฐ€์žฅ ๊ทผ๊ฑฐ๊ฐ€ ์žˆ๋Š” ์„ค์ • ํ•˜๋‚˜๋ฅผ ๋ฐ”๊ฟ‰๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์ „ ๊ฐ’๊ณผ ๋˜๋Œ๋ฆด ๋ฐฉ๋ฒ•์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.
  5. ์žฌํ™•์ธ: ๋ฌธ์ œ ๊ธฐ๋Šฅ๋ฟ ์•„๋‹ˆ๋ผ ๋กœ๊ทธ์ธ, ๊ธ€์“ฐ๊ธฐ, ์ด๋ฏธ์ง€ ํ‘œ์‹œ ๊ฐ™์€ ์ธ์ ‘ ๊ธฐ๋Šฅ๋„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด 403์„ ๋ดค๋‹ค๊ณ  ๋ฐฉํ™”๋ฒฝ ์ „์ฒด๋ฅผ ๋„๊ฑฐ๋‚˜, 503์„ ๋ดค๋‹ค๊ณ  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋ฐ”๋กœ ์ฆ์„คํ•˜์ง€ ๋งˆ์„ธ์š”. ์•ž์˜ ์˜ˆ์ œ๋Š” ๊ฐ™์€ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ด ๋ชจ๋‘ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Œ์„ ๋ณด์—ฌ ์ค๋‹ˆ๋‹ค. ์‹ค์ œ ์›์ธ์€ ๊ด€๋ จ ๋กœ๊ทธ์™€ ์ ์šฉ๋œ ๊ทœ์น™์ด ์„ค๋ช…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์ž์ฒด๋Š” ์›์ธ ๋ณด๊ณ ์„œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

์šด์˜ ๊ธฐ๋ก์€ ๊ธธ ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. โ€œ์˜ค์ „ 10์‹œ ํ•œ๊ตญ ์‹œ๊ฐ„, ๋น„ํšŒ์› ๊ฒŒ์‹œ๊ธ€ GET 403, ์ผ๋ฐ˜ ๋ธŒ๋ผ์šฐ์ €๋Š” ์ •์ƒ, ๋ช…๋ น์ค„๋งŒ ์‹คํŒจ, ์›๋ณธ ๋กœ๊ทธ ๋ฏธํ™•์ธโ€์ฒ˜๋Ÿผ ๊ด€์ฐฐ๊ณผ ๋ฏธํ™•์ธ ์‚ฌํ•ญ์„ ๊ตฌ๋ถ„ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ธฐ๋ก์„ ๋‚จ๊ธฐ๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋„์›€์„ ์š”์ฒญํ•  ๋•Œ๋„ ์ถ”์ธก ๋Œ€์‹  ์žฌํ˜„ ๊ฐ€๋Šฅํ•œ ์กฐ๊ฑด์„ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉ์ž์—๊ฒŒ ๋ณด์ด๋Š” ์˜ค๋ฅ˜ ์•ˆ๋‚ด๋„ ์ ๊ฒ€ํ•˜์„ธ์š”. โ€œ์ž ์‹œ ํ›„ ๋‹ค์‹œ ์‹œ๋„ํ•˜์„ธ์š”โ€๋ผ๋Š” ํ™”๋ฉด์€ ํ•„์š”ํ•˜์ง€๋งŒ ์‘๋‹ต ์ƒํƒœ๊นŒ์ง€ 200์œผ๋กœ ๋ฐ”๊พธ๋ฉด ์™ธ๋ถ€ ์ ๊ฒ€ ๋„๊ตฌ๊ฐ€ ์„ฑ๊ณต์œผ๋กœ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ํ™”๋ฉด์˜ ์นœ์ ˆํ•จ๊ณผ ์ƒํƒœ ์ฝ”๋“œ์˜ ์ •ํ™•ํ•จ์„ ํ•จ๊ป˜ ์œ ์ง€ํ•˜๋Š” ํŽธ์ด ์šด์˜ํ•˜๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๊ธฐ์กด API ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์‘๋‹ต์„ ๊ธฐ๋Œ€ํ•˜๋Š”์ง€๋Š” ์ˆ˜์ • ์ „์— ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


7. ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

200์ด๋ฉด ์‚ฌ์ดํŠธ๊ฐ€ ์™„์ „ํžˆ ์ •์ƒ์ธ๊ฐ€์š”?

์•„๋‹™๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ํ•ด๋‹น ์š”์ฒญ์ด ์„ฑ๊ณต ์‘๋‹ต์„ ๋ฐ›์€ ๊ฒƒ๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ™”๋ฉด ์•ˆ์˜ ๋‹ค๋ฅธ API, ์ด๋ฏธ์ง€, JavaScript ์‹คํ–‰์€ ๋”ฐ๋กœ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ ์•ˆ๋‚ด๋‚˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹คํŒจ ๋ฉ”์‹œ์ง€๊ฐ€ 200 ๋ณธ๋ฌธ์— ๋“ค์–ด์˜ค๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์œผ๋ฏ€๋กœ ์‹ค์ œ ๋‚ด์šฉ๊ณผ ๊ธฐ๋Šฅ์„ ์ ๊ฒ€ํ•˜์„ธ์š”.

๋ธŒ๋ผ์šฐ์ €๋Š” ๋˜๋Š”๋ฐ curl๋งŒ 403์ด๋ฉด ์„œ๋ฒ„ ์˜ค๋ฅ˜์ธ๊ฐ€์š”?

๊ทธ ๊ฒฐ๊ณผ๋งŒ์œผ๋กœ๋Š” ํ™•์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์˜ ์ฟ ํ‚ค, ๋ณด์•ˆ ํ™•์ธ ๊ณผ์ •, ํ—ค๋”, ์ ‘์† ์œ„์น˜๊ฐ€ ๋‹ค๋ฅธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ ์‹ค์Šต์˜ 403์€ ์˜ˆ์ œ ์„œ๋ฒ„๊ฐ€ ์ง์ ‘ ๋ฐ˜ํ™˜ํ–ˆ์ง€๋งŒ ์‹ค์ œ ์‚ฌ์ดํŠธ์˜ 403์€ ์ค‘๊ฐ„ ์„œ๋น„์Šค๊ฐ€ ๋ณด๋ƒˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์˜ˆ์ œ์—์„œ 429๋Š” 30์ดˆ ๋’ค 200์œผ๋กœ ๋ฐ”๋€Œ๋‚˜์š”?

์•„๋‹™๋‹ˆ๋‹ค. ๊ฒฝ๋กœ๋ณ„๋กœ ๊ณ ์ • ์‘๋‹ต์„ ๋ณด๋‚ด๋ฏ€๋กœ ๊ณ„์† 429์ž…๋‹ˆ๋‹ค. ํ—ค๋”๋ฅผ ์ฝ๋Š” ์—ฐ์Šต์„ ์œ„ํ•œ ๊ตฌ์กฐ์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์ œํ•œ ํ•ด์ œ๋ฅผ ์‹œํ—˜ํ•˜๋ ค๋ฉด ์‹œ๊ฐ„๊ณผ ํ˜ธ์ถœ ํšŸ์ˆ˜๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ณ„๋„์˜ ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

503์ด๋ฉด ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ๋‹ค๋Š” ๋œป์ธ๊ฐ€์š”?

๊ทธ๋Ÿด ์ˆ˜ ์žˆ์ง€๋งŒ ์ฝ”๋“œ๋งŒ์œผ๋กœ ์ ‘์†์ž ์ˆ˜๋ฅผ ์•Œ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์œ ์ง€๋ณด์ˆ˜, ๋‚ด๋ถ€ ์˜์กด ์„œ๋น„์Šค ์—ฐ๊ฒฐ ์‹คํŒจ ๋“ฑ ์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์˜ ์ฒ˜๋ฆฌ ๋ฐฉ์‹๋„ ์‚ดํŽด๋ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์‘๋‹ต ๋ณธ๋ฌธ๊ณผ ๋กœ๊ทธ๊ฐ€ ์—†๋Š” ์ƒํƒœ์—์„œ ๋ฐฉ๋ฌธ์ž ์ฆ๊ฐ€๋กœ ๋‹จ์ •ํ•˜์ง€ ๋งˆ์„ธ์š”.

curl ๋ช…๋ น์„ ์‚ฌ์ดํŠธ HTML์— ๋„ฃ์–ด์•ผ ํ•˜๋‚˜์š”?

์•„๋‹™๋‹ˆ๋‹ค. ๋ณธ๋ฌธ์— ๋ณด์ด๋Š” ๋ช…๋ น์€ ๋…์ž๊ฐ€ ํ„ฐ๋ฏธ๋„์—์„œ ์‹คํ–‰ํ•˜๋Š” ์ง„๋‹จ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค. HTML ํŒŒ์ผ์„ ์—ด์–ด๋„ ์„œ๋ฒ„๊ฐ€ ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์™ธ๋ถ€ ์‚ฌ์ดํŠธ์— ์š”์ฒญ์„ ๋ณด๋‚ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ  ์ž๋ฃŒ์™€ ๊ฒ€์ฆ ๋ฒ”์œ„

๋ณธ๋ฌธ์€ ํ‘œ์ค€ ์ •์˜๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฒˆ์—ญํ•ด ์˜ฎ๊ธด ๋ฌธ์„œ๊ฐ€ ์•„๋‹ˆ๋ผ, ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌ์„ฑํ•œ ์ ๊ฒ€ ์ ˆ์ฐจ์™€ ๋กœ์ปฌ ์‹ค์Šต์„ ์ค‘์‹ฌ์œผ๋กœ ์ž‘์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์ƒํƒœ ์ฝ”๋“œ ์˜๋ฏธ์™€ ๋„๊ตฌ ์˜ต์…˜์„ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉํ•œ ์ž๋ฃŒ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๊ฒ€์ฆํ•œ ๋ฒ”์œ„๋Š” ๋กœ์ปฌ ์˜ˆ์ œ์˜ GET ์‘๋‹ต 7๊ฐ€์ง€, ๋‘ ์žฌ์‹œ๋„ ํ—ค๋”, ์ด๋™ ์ฃผ์†Œ์™€ ์ตœ์ข… 200, ๋ณธ๋ฌธ ๊ธธ์ด์ž…๋‹ˆ๋‹ค. ์‹ค์ œ ์‚ฌ์ดํŠธ์˜ ์ธ์ฆยท๋ฐฉํ™”๋ฒฝยท๋ถ€ํ•˜ ์ œํ•œยทCDN ๋™์ž‘์€ ์ด ์‹ค์Šต์œผ๋กœ ๊ฒ€์ฆํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Windows ๋ช…๋ น์€ ๊ณต์‹ curl ์˜ต์…˜์— ๋งž์ถฐ ์ž‘์„ฑํ–ˆ์œผ๋ฉฐ ์ด๋ฒˆ ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ Windows ์ž์ฒด๋ฅผ ์‹œํ—˜ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

์ด ๋ฌธ์„œ์˜ ๋„์‹๊ณผ ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๋ณธ๋ฌธ์„ ์œ„ํ•ด ์ง์ ‘ ๊ตฌ์„ฑํ–ˆ์Šต๋‹ˆ๋‹ค. ์™ธ๋ถ€ ์ด๋ฏธ์ง€ยทํฐํŠธยท๊ด‘๊ณ ยท์ถ”์  ์Šคํฌ๋ฆฝํŠธ ์—†์ด ์—ด๋ฆฌ๋Š” ๋‹จ์ผ HTML ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

๐Ÿ’ฌ ๋Œ“๊ธ€ 0๊ฐœ

IT ๊ฒŒ์‹œํŒ

๊ณต์ง€
Notice
๊ณต์ง€ inspeep ์ปค๋ฎค๋‹ˆํ‹ฐ ์ด์šฉ ๋ฐ ๊ฒŒ์‹œ๋ฌผ ๊ด€๋ฆฌ ๊ทœ์ • ์•ˆ๋‚ด
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.04.15 ๐Ÿ‘€ ์กฐํšŒ 57 ๐Ÿ‘ ์ถ”์ฒœ 0
BEST
์ธ๋„ค์ผ
BEST 2. ์ฝ”๋”ฉ ๋ฌธ์™ธํ•œ์˜ ์›Œ๋“œํ”„๋ ˆ์Šค ์ •๋ณต๊ธฐ: VS Code์™€ FTP์˜ ์Šต๊ฒฉ
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.05 ๐Ÿ‘€ ์กฐํšŒ 135 ๐Ÿ‘ ์ถ”์ฒœ 0
Random Pick
์ธ๋„ค์ผ
Random Pick XenoFeels ๊ฐœ๋ฐœ์ž์— ๋Œ€ํ•œ ์ถฉ๊ฒฉ์‚ฌ์‹ค
๐Ÿ‘ค ๋””๋ก ๐Ÿ“… 2026.07.15 ๐Ÿ‘€ ์กฐํšŒ 25 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ
์ธ๋„ค์ผ
๋ง๋„ ์•ˆ ๋˜๋Š” ๊ตญ์‚ฐ 1์ธ๊ฐœ๋ฐœ ์œ ์‚ฌ ๋ฐœ๋ผํŠธ๋กœ
๐Ÿ‘ค Cyan ๐Ÿ“… 2026.05.22 ๐Ÿ‘€ ์กฐํšŒ 20 ๐Ÿ‘ ์ถ”์ฒœ 0
์ผ๋ฐ˜
์ธ๋„ค์ผ
์‹ ๋ฐ•ํ•œ ai๋ณ„ ์—‰๋ฉ์ด ๋•Œ๋ฆฌ๋ฉด ๋ฐ˜์‘
๐Ÿ‘ค Cyan ๐Ÿ“… 2026.05.14 ๐Ÿ‘€ ์กฐํšŒ 6 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์ƒ์ƒ์ดˆ์›” EU ๋ฐฐํ„ฐ๋ฆฌ ๊ต์ฒด ์Šค๋งˆํŠธํฐ ์˜๋ฌดํ™”๋ž˜
๐Ÿ‘ค ๋ฃธ๋””๋ฅด ๐Ÿ“… 2026.05.09 ๐Ÿ‘€ ์กฐํšŒ 17 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
๋ˆˆ๋ฌผ ์™ ๋นผ๋Š” ์ค‘์„œ์šด ์ด์•ผ๊ธฐ) ์ •์ฒด๋ถˆ๋ช…์˜ ์œˆ๋„์šฐ ์ฐฝ
๐Ÿ‘ค ๋ฆฌํ† ํƒ€ ๐Ÿ“… 2026.05.06 ๐Ÿ‘€ ์กฐํšŒ 21 ๐Ÿ‘ ์ถ”์ฒœ 0
๋‰ด์Šค
์ธ๋„ค์ผ
์˜ˆ์‚ฌ๋กญ์ง€ ์•Š์€ ์˜ค๋ฒ„ ํด๋Ÿญํ•˜๋‹ค๊ฐ€ ์ปดํ“จํ„ฐ ํ„ฐ์ง„ ์ฐ ํ‘ผ๋‹ค...txt
๐Ÿ‘ค ํ‹ฐ์ง€๋…ธ์•„ ๐Ÿ“… 2026.05.04 ๐Ÿ‘€ ์กฐํšŒ 28 ๐Ÿ‘ ์ถ”์ฒœ 0
์žก๋‹ด
์ธ๋„ค์ผ
ํ™˜์žฅํ•˜๋Š” S26 ์šธํŠธ๋ผ ๋””์Šคํ”Œ๋ ˆ์ด ์ •๋ณด ๋ฐ ์•ฝ๊ฐ„์˜ ํ›„๊ธฐ
๐Ÿ‘ค ํฌํ‹ฐ๋ฆฌ์ฆˆ ๐Ÿ“… 2026.05.03 ๐Ÿ‘€ ์กฐํšŒ 22 ๐Ÿ‘ ์ถ”์ฒœ 0
๊ฐœ๋ฐœ๊ธฐ
No Image
๊ฐœ๋ฐœ๊ธฐ
No Image
16. ์™„๋ฒฝ์ฃผ์˜์˜ ํ•จ์ •๊ณผ AI ๊ธฐํš
๐Ÿ‘ค ๊ด€๋ฆฌ์ž ๐Ÿ“… 2026.03.20 ๐Ÿ‘€ ์กฐํšŒ 76 ๐Ÿ‘ ์ถ”์ฒœ 0
« ์ฒ˜์Œ ‹ ์ด์ „ 1 2 3 4 5 6 7 ๋‹ค์Œ › ๋ »
โœ๏ธ ๊ธ€์“ฐ๊ธฐ