λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
  • μž₯원읡 κΈ°μˆ λΈ”λ‘œκ·Έ
πŸ’» Computer Science/- Network

[HTTP-Header] HTTP Response Header :: 응닡 헀더

by Wonit 2020. 10. 9.

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

HTTP 응닡 ν—€λ”λŠ” μš”μ²­μ— 따라 μ μ ˆν•œ 둜직이 μˆ˜ν–‰λ˜κ³  결과둜 응닡할 HTTP λ©”μ‹œμ§€μ˜ 헀더λ₯Ό 말 ν•œλ‹€.

 

μ—¬κΈ°μ„œ μš°λ¦¬λŠ” 자주 μ‚¬μš©ν•˜λŠ”μœ λͺ…ν•œ 헀더에 λŒ€ν•΄μ„œλ§Œ μ•Œμ•„λ³Ό 것이닀.

 

ν—€λ”λŠ” 크둬의 개발자 λ„κ΅¬μ˜λ„€νŠΈμ›Œν¬ νƒ­μ—μ„œ 헀더듀을 확인할 수 μžˆλ‹€.

μš”μ²­ 헀더 Request Header

μš°λ¦¬κ°€ μ΄λ²ˆμ— 닀뀄볼 응닡 ν—€λ”λŠ” λ‹€μŒκ³Ό κ°™λ‹€.

  • Access-Control-Allow-Origin
  • Allow
  • Content-Disposition
  • Location
  • Content-Security-Policy

 

Access-Control-Allow-Origin

μš”μ²­μ„ λ³΄λ‚΄λŠ” ν΄λΌμ΄μ–ΈνŠΈμ˜ μ£Όμ†Œμ™€ μš”μ²­μ„ λ°›λŠ” λ°±μ—”λ“œ μ£Όμ†Œκ°€ λ‹€λ₯΄λ©΄ CORS μ—λŸ¬κ°€ λ°œμƒν•œλ‹€κ³  μ§€λ‚œ μ‹œκ°„ 이야기λ₯Ό ν–ˆμ—ˆλ‹€.


이 λ•Œ Access-Control-Allow-Origin 헀더에 ν΄λΌμ΄μ–ΈνŠΈμ˜ μ£Όμ†Œλ₯Ό 적어야 μ—λŸ¬κ°€ λ°œμƒν•˜μ§€ μ•ŠλŠ”λ‹€.

λ§Œμ•½

  1. ν”„λ‘œν† μ½œ
  2. μ„œλΈŒλ„λ©”μΈ
  3. 도메인
  4. 포트

쀑 ν•˜λ‚˜λΌλ„ λ‹€λ₯΄λ©΄ CORS μ—λŸ¬κ°€ λ°œμƒν•œλ‹€.

Access-Control-Allow-Origin: *
Access-Control-Allow-Origin: <origin>
Access-Control-Allow-Origin: null

// Access-Control-Allow-Origin: https://developer.mozilla.org

μ£Όμ†Œλ₯Ό 일일지 μ§€μ •ν•˜κΈ° μ‹«λ‹€λ©΄ *둜 λͺ¨λ“  μ£Όμ†Œμ— CORS μš”μ²­μ„ ν—ˆμš©ν•  수 μžˆμ§€λ§Œ λ³΄μ•ˆμ΄ μ·¨μ•½ν•΄μ§€λŠ” 점이 있기 λ•Œλ¬Έμ— ν•΄λ‹Ή 헀더λ₯Ό μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ ν•˜μž.

 

이와 μœ μ‚¬ν•œ ν—€λ”λ‘œλŠ”

Access-Control-Request-Method
Access-Control-Request-Headers
Access-Control-Allow-Methods
Access-Control-Allow-Headers

등이 μžˆλ‹€.

 

Allow

Allow ν—€λ”λŠ” Access-Control-Allow-Mehtodsλž‘ λΉ„μŠ·ν•˜μ§€λ§Œ CORS μš”μ²­ 외에도 μ μš©λœλ‹€λŠ” νŠΉμ§•μ΄ μžˆλ‹€.


νŠΉμ • λ©”μ„œλ“œλ§Œ ν—ˆμš©ν•˜κ² λ‹€λΌλŠ” 것을 μ§€μ •ν•˜λŠ” 헀더이닀.

Allow: <http-methods>

// Allow: GET, POST, HEAD

 

Content-Disposition

응닡 본문을 λΈŒλΌμš°μ €κ°€ μ–΄λ–»κ²Œ ν‘œμ‹œν•΄μ•Ό 할지 μ•Œλ €μ£ΌλŠ” 헀더이닀.


inline인 경우 μ›ΉνŽ˜μ΄μ§€ 화면에 ν‘œμ‹œλ˜κ³ , attachment인 경우 λ‹€μš΄λ‘œλ“œλœλ‹€.

Content-Disposition: inline
Content-Disposition: attachment
Content-Disposition: attachment; filename="filename.jpg"

// ex
POST /test.html HTTP/1.1
Host: example.org
Content-Type: multipart/form-data;boundary="boundary"

--boundary
Content-Disposition: form-data; name="field1"

value1
--boundary
Content-Disposition: form-data; name="field2"; filename="example.txt"

value2
--boundary--

λ‹€μš΄λ‘œλ“œλ˜κΈΈ μ›ν•˜λŠ” νŒŒμΌμ€ attachment둜 값을 μ„€μ •ν•˜κ³ , filename μ˜΅μ…˜μœΌλ‘œ 파일λͺ…κΉŒμ§€ 지정해쀄 수 μžˆλ‹€.


보톡 FTP μ„œλ²„λ‚˜ 파일 μ „μš© μ„œλ²„μ—μ„œ 많이 μ‚¬μš©ν•˜κ²Œ λœλ‹€.

 

Location

λ¦¬λ‹€μ΄λ ‰νŠΈ 헀더라고도 ν•˜λ©°, 300λ²ˆλŒ€ μ‘λ‹΅μ΄λ‚˜ 201 Created 응닡일 λ•Œ μ–΄λŠ νŽ˜μ΄μ§€λ‘œ 이동할지λ₯Ό μ•Œλ €μ£ΌλŠ” 헀더이닀.

Location: <url>

// ex
HTTP/1.1 302 Found
Location: /

 

Content-Security-Policy

μ™ΈλΆ€ νŒŒμΌλ“€μ„ 뢈러올 경우, 차단할 μ†ŒμŠ€μ™€ 뢈러올 μ†ŒμŠ€λ₯Ό λͺ…μ‹œν•  수 μžˆλ‹€.


이 헀더λ₯Ό μ΄μš©ν•œλ‹€λ©΄ XSS 곡격과 같은 잠재적 곡격 μ†ŒμŠ€ νŒŒμΌμ„ 차단할 수 있고, 잘 λ™μž‘ν•˜λŠ” μ†ŒμŠ€ μ½”λ“œλ₯Ό ν—ˆμš©ν•  수 있게 λœλ‹€.


λ§Œμ–€ 이 값을 self라고 μ§€μ •ν•œλ‹€λ©΄ μžμ‹ κ³Ό 같은 λ„λ©”μΈμ˜ 파일만 κ°€μ Έ 올 수 있게 λ˜λŠ” 것이닀

Content-Security-Policy: <policy-directive>; <policy-directive>

// Content-Security-Policy: default-src https:

λŒ“κΈ€