Header yêu cầu bị cấm

Tiêu đề yêu cầu bị cấm là cặp tên-giá trị tiêu đề HTTP không thể được đặt hoặc sửa đổi bằng lập trình trong một yêu cầu. Để biết các tiêu đề bị cấm sửa đổi trong phản hồi, xem forbidden response header name.

Việc sửa đổi các tiêu đề như vậy bị cấm vì tác nhân người dùng nắm toàn quyền kiểm soát chúng. Ví dụ, tiêu đề Date là một tiêu đề yêu cầu bị cấm, vì vậy đoạn code này không thể đặt trường Date của thông báo:

js
fetch("https://httpbin.org/get", {
  headers: {
    Date: new Date().toUTCString(),
  },
});

Các tên bắt đầu bằng Sec- được dành riêng để tạo các tiêu đề mới an toàn từ APIs cấp cho nhà phát triển quyền kiểm soát tiêu đề, chẳng hạn như fetch(). Các tiêu đề bị cấm là một trong những tiêu đề sau:

Note: Tiêu đề User-Agent trước đây bị cấm, nhưng không còn nữa. Tuy nhiên, Chrome vẫn âm thầm bỏ tiêu đề này khỏi các yêu cầu Fetch (xem Chromium bug 571722).

Note: Mặc dù tiêu đề Referer được liệt kê là tiêu đề bị cấm trong đặc tả, tác nhân người dùng không nắm toàn quyền kiểm soát nó và tiêu đề có thể được sửa đổi bằng lập trình. Ví dụ, khi sử dụng fetch(), tiêu đề Referer có thể được sửa đổi bằng lập trình thông qua tùy chọn referrer.

Note: Chrome cũng cấm Access-Control-Request-Private-Network

Xem thêm