๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ
๐Ÿ’ป Computer Science/- Network

[HTTP-Header] HTTP Request Header :: ์š”์ฒญ ํ—ค๋”

by Wonit 2020. 10. 9.

https://docs.trafficserver.apache.org/

HTTP ์š”์ฒญ ํ—ค๋”๋Š” ์„œ๋ฒ„๋กœ ์š”์ฒญํ•  ๋ฐ์ดํ„ฐ์˜ ์ •๋ณด๊ฐ€ ๋‹ด๊ฒจ์žˆ๋Š” ํ—ค๋”์ด๋‹ค.

 

๋ณดํ†ต Fetch๋  ๋ฆฌ์†Œ์Šค๋‚˜ ํด๋ผ์ด์–ธํŠธ ์ž์ฒด์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.

 

์—ฌ๊ธฐ์„œ ์šฐ๋ฆฌ๋Š” ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ์œ ๋ช…ํ•œ ํ—ค๋”์— ๋Œ€ํ•ด์„œ๋งŒ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค.


ํ—ค๋”๋Š” ํฌ๋กฌ์˜ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ํ—ค๋”๋“ค์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

์š”์ฒญ ํ—ค๋” Request Header

์šฐ๋ฆฌ๊ฐ€ ์ด๋ฒˆ์— ๋‹ค๋ค„๋ณผ ์š”์ฒญ ํ—ค๋”๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • Host
  • User-Agent
  • Accept
  • Authorization
  • Origin
  • Referer

 

Host

์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ ๋„ค์ž„๊ณผ ์„œ๋ฒ„๊ฐ€ ํ˜„์žฌ Listening ์ค‘์ธ TCP ํฌํŠธ๋ฅผ ์ง€์ •ํ•œ๋‹ค.

 

๋งŒ์•ฝ ํฌํŠธ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ์š”์ฒญ๋œ ์„œ๋ฒ„์˜ ๊ธฐ๋ณธ ํฌํŠธ๋ฅผ ์˜๋ฏธํ•œ๋‹ค. (HTTP URL์€ 80)

 

Host ํ—ค๋”๋Š” ๋ฐ˜๋“œ์‹œ ํ•˜๋‚˜๊ฐ€ ์กด์žฌํ•ด์•ผ ํ•œ๋‹ค.

 

๋งŒ์•ฝ ํ•œ ๊ฐœ๊ฐ€ ์•„๋‹ˆ๋ผ ์—†๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ๊ฐœ๋ฉด 400(Bad Request) ์ƒํƒœ ์ฝ”๋“œ๊ฐ€ ์ „์†ก๋œ๋‹ค.

Host: <host>:<port_Optional>

// Host: developer.cdn.mozilla.net

 

User-Agent

ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ํด๋ผ์ด์–ธํŠธ(์šด์˜์ฒด์ œ์™€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํฌํ•จํ•œ)๋ฅผ ์ด์šฉํ•ด ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

User-Agent: <product> / <product-version> <comment>

// Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36
// Mozilla/5.0 (iPhone; CPU iPhone OS 13_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.1.1 Mobile/15E148 Safari/604.1
// Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

 

Accept

Accept๋Š” ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์„œ๋ฒ„์—๊ฒŒ ์–ด๋–ค ํ„ฐ์ž…์œผ๋กœ ์‘๋‹ต์„ ๋ณด๋‚ด์คฌ์œผ๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ๋ช…์‹œํ•œ๋‹ค.


์˜ˆ๋ฅผ ๋“ค์–ด

Accept: text/html

์„ ์š”์ฒญ ํ—ค๋”๋กœ ๋ณด๋‚ด๋ฉด HTML ํ˜•์‹์ธ ์‘๋‹ต์„ ์ฒ˜๋ฆฌํ•˜๊ฒ ๋‹ค๋Š” ๋œป์ด๋‹ค.


์ด๋Š” ์ฝค๋งˆ๋กœ ์—ฌ๋Ÿฌ ํƒ€์ž…์„ ๋™์‹œ์— ์ ์–ด์ค„ ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ์™€์ผ๋“œ์นด๋“œ์ธ * ์•„์Šคํ…Œ๋ฆฌํฌ๋กœ ๋ณด๋‚ผ ์ˆ˜๋„ ์žˆ๋‹ค.

 

์ด๋Ÿฌํ•œ Accept์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค๋„ ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.

  1. Accept-Charset : ์›ํ•˜๋Š” Character Set
  2. Accept-Language : ์›ํ•˜๋Š” Lang
  3. Accept-Encoding : ์›ํ•˜๋Š” Encoding ๋ฐฉ์‹

๋Œ€์ถฉ ๋ธŒ๋ผ์šฐ์ €๋Š” ์•Œ์•„์„œ ์„ค์ •ํ•ด์„œ ๋ณด๋Š๋Š” Accept๊ฐ€ ์žˆ๋‹ค.


๋ฌด์Šจ ํ—ค๋”๋ฅผ ์ ์–ด์•ผํ• ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ด์šฉํ•˜์ž.

 

Authorization

Authorization ํ—ค๋”๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์ธ๊ฐ€๋œ ์‚ฌ์šฉ์ž์ž„์„ ์ฆ๋ช…ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.


๋ณดํ†ต JWT๋‚˜ Bearer ํ† ํฐ์„ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉฐ ์ž๊ฒฉ์ด ์ฆ๋ช…๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ 401 Unauthorized ์ƒํƒœ๋ฅผ ์•Œ๋ ค์ค€๋‹ค.

Authorization: <type> <credentials>

// Authorization: Basic YWxhZGRpbjpvcGVuc2VzYW1l
  • type : ์ธ์ฆ ํƒ€์ž…์œผ๋กœ ๋ณดํ†ต Basic๊ณผ Bearer์„ ์‚ฌ์šฉํ•œ๋‹ค.
  • credentials : ์‚ฌ์šฉ์ž๋ช…๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ, ๋‹ค๋ฅธ ํŽ˜์ด๋กœ๋“œ๊ฐ€ ํ•ฉ์ฒ˜์ ธ base64๋กœ ์ธ์ฝ”๋”ฉ๋œ ๊ฐ’

Base64 ์ธ์ฝ”๋”ฉ์€ ์•”ํ˜ธํ™”๋‚˜ ํ•ด์‹ฑ์„ ์˜๋ฏธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค! ์ด ๋ฐฉ๋ฒ•์€ ์ธ์ฆ์— ๋Œ€ํ•ด์„œ ๋ฌธ์ž๋ฅผ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•˜๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (base64์ธ์ฝ”๋”ฉ์€ ๋ณตํ˜ธํ™” ๊ฐ€๋Šฅ). Basic ์ธ์ฆ์„ ํ•˜๋Š” ๊ฒฝ์šฐ HTTPS๋กœ ์ ‘์†ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. by MDN

 

Origin

POST์™€ ๊ฐ™์€ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ, ์š”์ฒญ์ด ์–ด๋Š ์ฃผ์†Œ์—์„œ ์‹œ์ž‘๋˜์—ˆ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.


์—ฌ๊ธฐ์„œ ์š”์ฒญ์„ ๋ณด๋‚ธ ์ฃผ์†Œ์™€ ๋ฐ›๋Š” ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๋ฉด CORS ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š”๋ฐ, CORS์— ๋Œ€ํ•ด ๋ชจ๋ฅด๊ฒ ๋‹ค๋ฉด CORS๋ž€?์ด๋ผ๋Š” ๊ธ€๋กœ ๊ฐ€์„œ ํ™•์ธํ•˜๊ธธ ๋ฐ”๋ž€๋‹ค.

Origin: null
Origin: <scheme> "://" <hostname> [ ":" <port> ]

// Origin: https://developer.mozilla.org
  • scheme : ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœํ† ์ฝœ
  • hostname : ์„œ๋ฒ„์˜ ์ด๋ฆ„ ๋˜๋Š” ip
  • port : ์„œ๋ฒ„์— ์—ด๋ฆฐ tcp ํฌํŠธ

 

Referer

์ด๋Š” ์ด ํŽ˜์ด์ง€ ์ด์ „์— ๋Œ€ํ•œ ์ฃผ์†Œ๊ฐ€ ๋‹ด๊ฒจ์žˆ๋‹ค.


์ด ํ—ค๋”๋ฅผ ์ด์šฉํ•˜๋ฉด ์–ด๋–ค ํŽ˜์ด์ง€์—์„œ ์ง€๊ธˆ ํŽ˜์ด์ง€๋กœ ์™”๋Š์ง€๋ฅผ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ์• ๋„๋ฆฌํ‹ฑ์Šค๋ฅผ ํ•˜๋Š”๋ฐ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค.

Referer: <url>

Referer: https://developer.mozilla.org/en-US/docs/Web/JavaScript