[ Internet ] HTTP๋ž€?

Jae Hyeong Parkยท2022๋…„ 4์›” 9์ผ
0

[ 2022 Roadmap ]

๋ชฉ๋ก ๋ณด๊ธฐ
3/3
post-thumbnail

๐Ÿ’ก HTTP

HTTP(Hyper Text Transfer Protocol)์˜ ๋‘๋ฌธ์ž์–ด๋กœ, ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ํ†ต์‹  ๊ทœ์•ฝ์œผ๋กœ ์ธํ„ฐ๋„ท์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์ฃผ๋กœ HTML ๋ฌธ์„œ๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๋ฐ์— ์“ฐ์ธ๋‹ค. ์ฃผ๋กœ TCP๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  HTTP/3 ๋ถ€ํ„ฐ๋Š” UDP๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, 80๋ฒˆ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. 1996๋…„ ๋ฒ„์ „ 1.0, ๊ทธ๋ฆฌ๊ณ  1999๋…„ 1.1์ด ๊ฐ๊ฐ ๋ฐœํ‘œ๋˜์—ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ๊ทœ์•ฝ์„ ์ •ํ•ด๋‘์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์ด ์ด ๊ทœ์•ฝ์— ๋งž์ถฐ ๊ฐœ๋ฐœํ•ด์„œ ์„œ๋กœ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.


1. HTTP ๋™์ž‘

HTTP๋Š” ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์ด๋ฃจ์–ด์ง€๋Š” ์š”์ฒญ/์‘๋‹ต(request/response) ํ”„๋กœํ† ์ฝœ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ํด๋ผ์ด์–ธํŠธ์ธ ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ HTTP๋ฅผ ํ†ตํ•˜์—ฌ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์›นํŽ˜์ด์ง€(HTML)๋‚˜ ๊ทธ๋ฆผ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ์ด ์š”์ฒญ์— ์‘๋‹ตํ•˜์—ฌ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ํ•ด๋‹น ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌํ•˜๊ฒŒ ๋œ๋‹ค. ์ด ์ •๋ณด๊ฐ€ ๋ชจ๋‹ˆํ„ฐ์™€ ๊ฐ™์€ ์ถœ๋ ฅ ์žฅ์น˜๋ฅผ ํ†ตํ•ด ์‚ฌ์šฉ์ž์—๊ฒŒ ๋‚˜ํƒ€๋‚˜๋Š” ๊ฒƒ์ด๋‹ค.

  • Request(์š”์ฒญ) : Client(์‚ฌ์šฉ์ž) --> Server
  • Response(์‘๋‹ต) : Server --> Client(์‚ฌ์šฉ์ž)

HTML ๋ฌธ์„œ๋งŒ์ด HTTP ํ†ต์‹ ์„ ์œ„ํ•œ ์œ ์ผํ•œ ์ •๋ณด ๋ฌธ์„œ๋Š” ์•„๋‹ˆ๋‹ค.
Plain text๋กœ ๋ถ€ํ„ฐ JSON ๋ฐ์ดํ„ฐ ๋ฐ XML๊ณผ ๊ฐ™์€ ํ˜•ํƒœ์˜ ์ •๋ณด๋„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ณดํ†ต์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์–ด๋–ค ์ •๋ณด๋ฅผ HTML ํ˜•ํƒœ๋กœ ๋ฐ›๊ณ  ์‹ถ์€์ง€, JSON ํ˜•ํƒœ๋กœ ๋ฐ›๊ณ  ์‹ถ์€์ง€ ๋ช…์‹œํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค.


2. HTTP ํŠน์ง•

  • HTTP ๋ฉ”์„ธ์ง€๋Š” HTTP ์„œ๋ฒ„์™€ HTTP ํด๋ผ์ด์–ธํŠธ์— ์˜ํ•ด ํ•ด์„๋œ๋‹ค
  • TCP/IP๋ฅผ ์ด์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
    : ์ปดํ“จํ„ฐ์™€ ์ปดํ“จํ„ฐ๊ฐ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก ํ•  ์ˆ˜ ์žˆ๋‹ค๋ก ํ•˜๋Š” ์žฅ์น˜๋กœ ์ธํ„ฐ๋„ท์ด๋ผ๋Š” ๊ฑฐ๋Œ€ํ•œ ํ†ต์‹ ๋ง(Network)์„ ํ†ตํ•ด ์›ํ•˜๋Š” ์ •๋ณด(๋ฐ์ดํ„ฐ)๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ธฐ๋Šฅ์„ ์ด์šฉํ•˜๋Š” ์‘์šฉ ํ”„๋กœํ† ์ฝœ
  • HTTP๋Š” ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ์ด๋‹ค.
    : ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Cookie์™€ Session์ด ๋“ฑ์žฅํ–ˆ๋‹ค.
  • HTTP๋Š” ์—ฐ๊ฒฐ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ๋น„์—ฐ๊ฒฐ์„ฑ ํ”„๋กœํ† ์ฝœ์ด๊ธฐ ๋•Œ๋ฌธ์— Request/Response๋ฐฉ์‹์œผ๋กœ ๋™์ž‘ํ•œ๋‹ค.

  • Cookie : ์‚ฌ์ดํŠธ๋ฅผ ์ด์šฉํ•˜๊ฑฐ๋‚˜ ๋ฐฉ๋ฌธํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ๋˜๋Š” ์ •๋ณด๋“ค
    1. ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ–ˆ์„ ๋•Œ ๊ทธ ์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด Cookie๋ฅผ ์ œ๊ณต๋ฐ›๋Š”๋‹ค.
    2. ์ด Cookie๋Š” ๋ฐฉ๋ฌธํ•œ ์‚ฌ์šฉ์ž์˜ PC์— ์ €์žฅ๋˜๊ณ , ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ™์€ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ ๋งˆ๋‹ค ์ฝํžˆ๊ณ  ์ˆ˜์‹œ๋กœ ์ƒˆ๋กœ์šด ์ •๋ณด๋กœ ๋ฐ”๋€๋‹ค.

  • Session : ์ฟ ํ‚ค์— ์ €์žฅํ•˜๊ธฐ ๊ณค๋ž€ํ•œ ์ •๋ณด๋“ค์„ ์„ธ์…˜์— ์ €์žฅํ•ด์ค€๋‹ค. ๋ฐฉ๋ฌธํ•œ ์‚ฌ๋žŒ์˜ ์ค‘์š”ํ•œ ์ •๋ณด๋“ค(ID ๋“ฑ)์€ ๋ฐฉ๋ฌธํ•œ ์‚ฌ์ดํŠธ ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ DB์— ์ €์žฅ๋œ๋‹ค.

    ๋งŒ์•ฝ ๋„ค์ด๋ฒ„์— ๋กœ๊ทธ์ธ์„ ํ•œ ๋’ค ์ฟ ํ‚ค๋ฅผ ์ง€์›Œ๋ฒ„๋ฆฌ๊ณ  ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•˜๊ฒŒ๋˜๋ฉด ๋กœ๊ทธ์ธ์ด ํ’€๋ ค๋ฒ„๋ฆฐ๋‹ค.
    ์™œ๊ทธ๋Ÿด๊นŒ? ์ด๋ฏธ ๋„ค์ด๋ฒ„์— ๋กœ๊ทธ์ธ์„ ํ–ˆ์œผ๋‹ˆ ์„œ๋ฒ„์— ์„ธ์…˜ ์•„์ด๋””๋Š” ์ €์žฅ๋˜์–ด ์žˆ์ง€๋งŒ, ๊ทธ ์„ธ์…˜ ์•„์ด๋””๊ฐ€ ์ฟ ํ‚ค์—์„œ ์ง€์›Œ์กŒ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์„œ๋ฒ„์— ์žˆ๋Š” ์„ธ์…˜์•„์ด๋””๊ฐ€ ๋‚ด๊ฑฐ๋ผ๋Š” ๊ฑธ PC์—์„œ๋Š” ์•Œ ์ˆ˜ ์—†๋‹ค.

  • Cache : ์ด๋ฏธ ํ•œ ๋ฒˆ ๊บผ๋‚ด์˜จ ์ด๋ฏธ์ง€๊ฐ™์€ ๋Œ€์šฉ๋Ÿ‰ ํŒŒ์ผ์„ ์ž„์‹œ ๋ณด๊ด€

๊ธฐ๋ณธ์ ์œผ๋กœ HTTP ํ”„๋กœํ† ์ฝœ ํ™˜๊ฒฝ์€ Connetcionless, statelessํ•œ ํŠน์„ฑ์„ ๊ฐ€์ง€๊ธฐ ๋–„๋ฌธ์— ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ๋งค๋ฒˆ ํ™•์ธ์„ ํ•ด์•ผํ•œ๋‹ค. ์ด ํŠน์„ฑ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด์„œ Cookie์™€ Session์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค.

  • Connetionless : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ํ•œ ํ›„ ์‘๋‹ต์„ ๋ฐ›์œผ๋ฉด ๊ทธ ์—ฐ๊ฒฐ์„ ๋Š์–ด๋ฒ„๋ฆฌ๋Š” ํŠน์ง•
  • Stateless : ํ†ต์‹ ์ด ๋๋‚˜๋ฉด ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํŠน์ง•, ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ˆœ๊ฐ„ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ํ†ต์‹ ์ด ๋๋‚˜๋ฉฐ ์ƒํƒœ ์ •๋ณด๋Š” ์œ ์ง€ํ•˜์ง€ ์•Š๋Š” ํŠน์„ฑ์ด ์žˆ๋‹ค.

๐Ÿคทโ€โ™‚๏ธ Session์„ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹์€๋ฐ ์™œ Cookie๋ฅผ ์‚ฌ์šฉํ• ๊นŒ?

Session์€ ์„œ๋ฒ„์˜ ์ž์›์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ถ„๋ณ„ํ•˜๊ฒŒ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ์„œ๋ฒ„์˜ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์–ด์งˆ ์ˆ˜๊ฐ€ ์žˆ๊ณ  ์†๋„๊ฐ€ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ๊ธฐ ๋–„๋ฌธ์— Cookie๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

๐Ÿ‘€ ํ•œ์ค„ ์š”์•ฝ

Cookie์™€ Session์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ์‡ผํ•‘๋ชฐ์—์„œ ์˜ท์„ ๊ตฌ๋งคํ•˜๋ ค ๊ตฌ๋งคํ•˜๋ ค๊ณ  ๋กœ๊ทธ์ธ์„ ํ–ˆ์Œ์—๋„, ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•  ๋•Œ ๋งˆ๋‹ค ๊ณ„์† ๋กœ๊ทธ์ธ์„ ํ•ด์•ผํ•œ๋‹ค. ๋งŒ์•ฝ Cookie์™€ Session์„ ์‚ฌ์šฉํ–ˆ์„ ๊ฒฝ์šฐ, ํ•œ ๋ฒˆ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด ์–ด๋– ํ•œ ๋ฐฉ์‹์— ์˜ํ•ด์„œ ๊ทธ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ธ์ฆ์„ ์œ ์ง€ํ•˜๊ฒŒ ๋œ๋‹ค.


๐Ÿ‘จโ€๐Ÿ’ป Request

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

1. Request Method

HTTP 1.0 ๊ณผ HTTP 1.1

  • GET : ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ์›น ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • HEAD : HEAD๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด GET์„ ํ†ตํ•ด ๋ฐ›์•„์˜ค๋Š” Response์˜ Header๋ฅผ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.
  • POST : ์›น ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

HTTP 1.1

  • PUT : ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ ์ €์žฅ์„ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค
  • DELETE : ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ ์‚ญ์ œ๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • TRACE : ์ˆ˜ํ–‰ ์ž‘์—…์˜ diagnostic trace๋ฅผ ์š”์ฒญํ•  ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.
  • OPTIONS : ์ง€์›ํ•˜๋Š” Request ๋ชฉ๋ก์„ ๋ฐ›์•„์˜ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
  • CONNECT : ํ”„๋ก์‹œ์—๊ฒŒ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๊ณ  ์ฝ˜ํ…์ธ ๋ฅผ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ์บ์‹œ ์—†์ด ์‘๋‹ตํ•˜๋„๋ก ์ง€์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

2. Requset HTTP ๋ฉ”์„ธ์ง€ ์˜ˆ์‹œ

GET https://velog.io/@jaehye0ng2 HTTP/1.1						// ์‹œ์ž‘์ค„
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...		// ํ—ค๋”
Upgrade-Insecure-Requests: 1

1) ์‹œ์ž‘์ค„

์ฒซ ์ค„์€ ๋ฉ”์„œ๋“œ ๊ตฌ์กฐ ๋ฒ„์ „์œผ๋กœ ๊ตฌ์„ฑ๋˜์—ˆ๋‹ค.

  • GET : HTTP Method
  • https://velog.io/@jaehye0ng2 : ์‚ฌ์ดํŠธ ์ฃผ์†Œ
  • HTTP/1.1 : HTTP ๋ฒ„์ „

2) ํ—ค๋”

ํ—ค๋”๋Š” ์š”์ฒญ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ๋‹ค. User-Agent, Upgrade-Insecure-Requests ๋“ฑ๋“ฑ์ด ํ—ค๋”์— ํ•ด๋‹น๋˜๋ฉฐ ํ—ค๋”์˜ ์ข…๋ฅ˜๋Š” ๋งค์šฐ ๋งŽ๋‹ค.

3) ๋ณธ๋ฌธ

๋ณธ๋ฌธ์€ ์š”์ฒญ์„ ํ•  ๋•Œ ํ•จ๊ป˜ ๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๋Š” ๋ถ€๋ถ„์ด๋‹ค. ํ˜„์žฌ ์˜ˆ์‹œ์—๋Š” ๋‹จ์ˆœํžˆ ์ฃผ์†Œ๋กœ๋งŒ ์š”์ฒญ์„ ๋ณด๋‚ด๊ณ  ์žˆ๊ณ  ๋”ฐ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„ ๋ณด๋‚ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๋ณธ๋ฌธ์ด ๋น„์–ด์žˆ๋‹ค.


๐Ÿ‘จโ€๐Ÿ’ป Response

์„œ๋ฒ„๊ฐ€ ์š”์ฒญ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ๋ณด๋‚ด๋Š” ๊ฒƒ์„ ์‘๋‹ต์ด๋ผ๊ณ  ํ•œ๋‹ค.

1. Status Code (์ƒํƒœ ์ฝ”๋“œ)

Status code๋Š” 3์ž๋ฆฌ ์ˆซ์ž ์ฝ”๋“œ์ด๋ฉฐ Request์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์„œ๋ฒ„์—์„œ ์ƒ์„ฑํ•œ๋‹ค. ์ƒ์œ„ ๋‹จ์œ„์˜ ์ˆซ์ž์— ๋”ฐ๋ผ ๋‹ค์„ฏ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • 1xx (Informational) : ์„œ๋ฒ„์˜ ์ƒํƒœ ์ •๋ณด
    โ‘  100 Continue = ์„œ๋ฒ„์—์„œ Request๋ฅผ ๋ฐ›์•˜์œผ๋ฉฐ, ์ด์˜ ์‘๋‹ต์„ ๋ณด๋‚ด๊ธฐ ์œ„ํ•ด ์ฒ˜๋ฆฌํ•˜๋Š” ์ค‘์ด๋‹ค.
  • 2xx (Success) : Request๋ฅผ ์ˆ˜์‹ ํ•˜์˜€๊ณ , ์˜๋ฏธ๋ฅผ ์ดํ•ดํ–ˆ์œผ๋ฉฐ, ์ด๋ฅผ ์ฒ˜๋ฆฌํ–ˆ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘  200 OK = Request๋ฅผ ์ดํ–‰ํ–ˆ๋‹ค.

  • 3xx (Redirection) : Request๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์•ก์…˜์ด ํ•„์š”๋กœ ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘  301 Move Permanently = ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๊ฐ€ ์˜๊ตฌ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘ก 302 Found & Redirect = ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๊ฐ€ ์ž„์‹œ์ ์œผ๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

  • 4xx (Client Error) : Request์— ๋ฌธ๋ฒ• ์˜ค๋ฅ˜๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์˜๋ฏธ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘  400 Bad Request = ์„œ๋ฒ„์—์„œ Request๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•จ, ๊ตฌ๋ฌธ์˜ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘ก 403 Forbidden = ํด๋ผ์ด์–ธํŠธ์˜ ์‹ ์›์— ์ƒ๊ด€์—†์ด ์„œ๋ฒ„์—์„œ ๋ฆฌ์†Œ์Šค ์ œ๊ณต์„ ๊ฑฐ๋ถ€ํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘ข 404 Not Found = ์š”์ฒญ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ์„œ๋ฒ„์—์„œ ์ฐพ์ง€ ๋ชปํ•จ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘ฃ 405 Method Not Allowed = ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญํ•œ Request๋ฅผ ์„œ๋ฒ„์—์„œ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

  • 5xx (Server Error) : ์„œ๋ฒ„์—์„œ Request๋ฅผ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ–ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘  500 Internal Server Error = ์„œ๋ฒ„ ๋‚ด๋ถ€ ํ”„๋กœ๊ทธ๋žจ์˜ ์˜ค๋ฅ˜.
    โ‘ก 501 Method Not Implemented = Request method๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘ข 502 Bad Gateway = ํ”„๋ก์‹œ ๋˜๋Š” ๊ฒŒ์ดํŠธ์›จ์ด๋Š” ์—…์ŠคํŠธ๋ฆผ ์„œ๋ฒ„์—์„œ ์ž˜๋ชป๋œ ์‘๋‹ต์„ ์ˆ˜์‹ ํ–ˆ์Œ์„ ์˜๋ฏธํ•œ๋‹ค.
    โ‘ฃ 503 Service Unavailable = ๊ณผ๋ถ€ํ•˜๋‚˜ ์œ ์ง€ ๋ณด์ˆ˜๋กœ ์ธํ•ด ์„œ๋ฒ„๊ฐ€ ์‘๋‹ตํ•  ์ˆ˜ ์—†์Œ์„ ์˜๋ฏธํ•œ๋‹ค.

2. Response HTTP ๋ฉ”์„ธ์ง€ ์˜ˆ์‹œ

HTTP/1.1 200 OK					// ์‹œ์ž‘์ค„
Connection : keep-alive			// ํ—ค๋”
Content-Encoding : gzip
content-Length : 35653
Content-Type : text/html;

1) ์‹œ์ž‘์ค„

์ฒซ ์ค„์€ ๋ฒ„์ „ ์ƒํƒœ์ฝ”๋“œ ์ƒํƒœ๋ฉ”์‹œ์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. 200์€ ์„ฑ๊ณต์ ์ธ ์š”์ฒญ์ด์—ˆ๋‹ค๋Š” ๋œป์ด๋‹ค.

2) ํ—ค๋”

๋‘ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ๋Š” ํ—ค๋”๋กœ ์‘๋‹ต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋‹ค.

3) ๋ณธ๋ฌธ

์‘๋‹ต์—๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ณธ๋ฌธ์ด ์žˆ๋‹ค. ๋ณดํ†ต ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ์‘๋‹ต ๋ฉ”์‹œ์ง€์—๋Š” ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ๋ณด๋‚ด์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์‘๋‹ต ๋ฉ”์‹œ์ง€์— HTML์ด ๋‹ด๊ฒจ ์žˆ๋Š”๋ฐ ์ด HTML์„ ๋ฐ›์•„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•œ๋‹ค.


๐Ÿ“š ์ฐธ์กฐ

profile
๋ชฉ์š•๊ฐ€์ž

0๊ฐœ์˜ ๋Œ“๊ธ€