Request header là một thành phần cốt lõi trong giao thức HTTP, đóng vai trò như bộ thông tin đi kèm mỗi yêu cầu từ client (trình duyệt, ứng dụng) đến máy chủ. Nó chứa các metadata quan trọng như loại dữ liệu chấp nhận, thông tin xác thực, tham số bảo mật và ngôn ngữ ưu tiên. Hiểu rõ request header là gì không chỉ giúp lập trình viên tối ưu hiệu suất website mà còn hỗ trợ kiểm tra lỗi API, bảo vệ hệ thống khỏi tấn công và cải thiện trải nghiệm người dùng. Bài viết này sẽ phân tích toàn diện từ định nghĩa, cấu trúc đến ứng dụng thực tế của request header trong lập trình web và SEO kỹ thuật.
Định nghĩa và bản chất của request header trong giao thức HTTP

Request header là tập hợp các cặp key-value được gửi kèm trong mỗi HTTP request từ client đến server. Nó hoạt động như phần mào đầu của gói tin, cung cấp ngữ cảnh để máy chủ hiểu và xử lý yêu cầu một cách chính xác. Không giống như phần body chứa dữ liệu chính (form, JSON), header chỉ chứa thông tin điều khiển và mô tả.
Mỗi request header tuân theo định dạng chuẩn: tên header (không phân biệt hoa thường) theo sau là dấu hai chấm và giá trị. Ví dụ: Content-Type: application/json hoặc Authorization: Bearer abc123. HTTP/1.1 quy định mỗi dòng header kết thúc bằng CRLF, và tổng độ dài header thường bị giới hạn bởi server (thường 8KB-32KB).
Request header tồn tại trong mọi phiên bản HTTP từ HTTP/1.0 đến HTTP/3. Dù giao thức có thay đổi, chức năng cốt lõi của header vẫn giữ nguyên: đàm phán nội dung, kiểm soát cache, xác thực và quản lý kết nối. Hiểu rõ bản chất này giúp bạn dễ dàng debug các vấn đề mạng và tối ưu request API.
Vai trò của request header trong quy trình gửi nhận dữ liệu
Khi bạn nhập một URL vào trình duyệt, trình duyệt tự động tạo ra một HTTP request chứa nhiều request header mặc định. Quy trình diễn ra như sau: trình duyệt phân tích URL, xác định phương thức GET hay POST, sau đó đóng gói các header như Host, User-Agent, Accept và gửi đến server. Server dựa vào các header này để quyết định trả về nội dung phù hợp.
Ví dụ thực tế: nếu bạn truy cập một website từ điện thoại, request header sẽ gửi thông tin User-Agent chứa chuỗi đặc trưng của trình duyệt di động. Server đọc header này và trả về giao diện responsive thay vì phiên bản desktop. Ngược lại, API backend dùng header Authorization để xác thực token, nếu header bị thiếu hoặc sai, server trả về lỗi 401 Unauthorized.
Phân loại chi tiết các loại request header phổ biến

Có hàng chục loại request header khác nhau, được phân nhóm theo chức năng. 1 và các tiêu chuẩn mở rộng:
- General headers (Header chung): Áp dụng cho cả request và response, như Cache-Control, Connection, Date.
- Request headers (Header riêng cho request): Chỉ xuất hiện trong request, gồm Accept, Authorization, User-Agent, Referer, Cookie.
- Entity headers (Header thực thể): Mô tả phần body của request, như Content-Type, Content-Length, Content-Encoding.
- Custom headers (Header tùy chỉnh): Do developer tự định nghĩa, thường bắt đầu bằng tiền tố X- (ví dụ X-Request-ID), nhưng theo chuẩn mới thì không khuyến khích dùng X-.
Bảng tra cứu các request header quan trọng nhất
| Tên header | Chức năng chính | Ví dụ giá trị |
|---|---|---|
| Host | Xác định tên miền và cổng của máy chủ đích | Host: www.example.com:8080 |
| User-Agent | Nhận dạng trình duyệt và hệ điều hành của client | Mozilla/5.0 (Windows NT 10.0; Win64; x64) |
| Accept | Đàm phán kiểu nội dung mà client chấp nhận | text/html, application/json, / |
| Authorization | Chứa thông tin xác thực (Basic, Bearer token) | Bearer eyJhbGciOiJIUzI1NiIs… |
| Content-Type | Khai báo kiểu dữ liệu của body request | application/x-www-form-urlencoded |
| Referer | Cho biết trang web trước đó mà người dùng đã truy cập | https://www.google.com/ |
| Cookie | Gửi cookie lưu trữ session hoặc thông tin đăng nhập | sessionid=abc123; theme=dark |
| Origin | Chỉ định nguồn gốc của request (dùng trong CORS) | https://myfrontend.com |
Cấu trúc chi tiết của một HTTP request và cách request header được đặt

Một HTTP request hoàn chỉnh bao gồm ba phần: request line, header fields và phần body (tùy chọn). Request line gồm phương thức HTTP (GET, POST, PUT…), đường dẫn URI và phiên bản HTTP. Ngay sau đó là các dòng header, mỗi dòng một cặp key-value, kết thúc bằng một dòng trống (CRLF) để phân cách với body.
Ví dụ một HTTP request đầy đủ:
GET /api/users HTTP/1.1
Host: api.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: application/json
Authorization: Bearer token123
Content-Type: application/json
[empty line]
{“username”: “test”}
Phần header tách biệt hoàn toàn với body, giúp server có thể đọc header trước khi quyết định có xử lý body hay không. Đây là điểm quan trọng trong bảo mật: server kiểm tra header trước, nếu thiếu Authorization sẽ từ chối ngay mà không cần đọc toàn bộ body.
Sự khác nhau giữa request header và response header
| Tiêu chí | Request header | Response header |
|---|---|---|
| Hướng truyền | Từ client đến server | Từ server đến client |
| Ví dụ điển hình | Authorization, Cookie, User-Agent | Set-Cookie, Server, WWW-Authenticate |
| Mục đích | Gửi thông tin xác thực, yêu cầu nội dung | Trả về cookie, thông báo lỗi, chỉ thị cache |
| Header chung | Cache-Control, Connection, Date | Cache-Control, Connection, Date |
Sự khác biệt then chốt nằm ở ý nghĩa ngữ cảnh: request header yêu cầu hành động từ server, trong khi response header cung cấp kết quả và hướng dẫn cho client. Ví dụ: header Authorization chỉ có trong request, còn WWW-Authenticate chỉ xuất hiện trong response lỗi 401.
Ứng dụng thực tế của request header trong lập trình web và bảo mật

Trong phát triển REST API, request header giúp quản lý phiên bản API thông qua header Accept-Version hoặc custom header. Ví dụ: Accept-Version: v2 cho phép server trả về kết quả tương ứng mà không thay đổi URL. Trong cơ chế content negotiation, header Accept-Language cho phép server trả về nội dung theo ngôn ngữ trình duyệt: nếu header gửi Accept-Language: vi, server sẽ ưu tiên trả tiếng Việt.
Về bảo mật, request header là công cụ phòng thủ mạnh mẽ. Header Origin và Referer giúp server kiểm tra cross-origin request, ngăn chặn tấn công CSRF. Header Content-Security-Policy dù là response header nhưng request header Sec-Fetch-* (Sec-Fetch-Site, Sec-Fetch-Mode) cho phép server biết ngữ cảnh của request, hỗ trợ phân biệt request hợp lệ và tấn công.
Trong SEO kỹ thuật, request header ảnh hưởng đến quá trình crawl và indexing. Googlebot gửi các header đặc biệt như User-Agent: Googlebot và X-Forwarded-For. Kiểm tra request header từ Googlebot giúp bạn phát hiện lỗi serve nội dung không chính xác cho bot, dẫn đến mất thứ hạng.
Cách kiểm tra request header trên trình duyệt
Để xem request header mà trình duyệt gửi đi,
Có, client (trình duyệt, ứng dụng) hoàn toàn có thể thiết lập hoặc sửa đổi request header trước khi gửi đi. Tuy nhiên, một số header như Host, Content-Length được trình duyệt tự động quản lý. Server không thể tin tưởng tuyệt đối vào bất kỳ header nào từ client nếu không có cơ chế xác thực riêng.
Làm thế nào để thêm custom header vào request?
Sử dụng API fetch với thuộc tính headers, hoặc thư viện HTTP như axios, Python requests. Ví dụ trong JavaScript: fetch(url, {headers: {‘X-Custom’: ‘value’}}). Trong các trình duyệt, một số custom header có thể bị chặn nếu không thuộc danh sách cho phép của CORS.
Tại sao request header lại quan trọng với SEO?
Googlebot dựa vào header User-Agent để xác định mình là bot, và header Accept-Language để xác định ngôn ngữ. Nếu server trả lời sai header, Googlebot có thể không crawl đúng nội dung, gây ảnh hưởng đến chỉ mục. Ngoài ra, header redirect (301, 302) cũng nằm trong response header, ảnh hưởng trực tiếp đến SEO.
Kích thước tối đa của một request header là bao nhiêu?
Không có con số chính thức trong chuẩn HTTP, nhưng hầu hết server web (Apache, Nginx) đều có giới hạn 8KB-16KB cho tổng các header. Nếu request header vượt quá giới hạn, server trả về lỗi 413 Payload Too Large hoặc 400 Bad Request.
Có công cụ nào để kiểm tra request header online không?
Có, bạn có thể dùng các trang web như requestheaders.com, httpbin.org (endpoint /headers), hoặc curl với tùy chọn -v. Các công cụ này hiển thị chính xác header mà bạn gửi lên server test.
Kết luận

Request header là thành phần không thể thiếu trong giao tiếp HTTP, ảnh hưởng đến mọi khía cạnh từ hiệu suất, bảo mật đến trải nghiệm người dùng. Việc nắm vững khái niệm request header là gì, cách thức hoạt động và ứng dụng thực tế giúp bạn xây dựng ứng dụng web an toàn, tối ưu SEO và dễ bảo trì. Hãy luôn kiểm tra header trước khi deploy, sử dụng các công cụ debug và tuân thủ chuẩn HTTP để đảm bảo hệ thống hoạt động ổn định.
- Plugin WordPress Diagnostic Tools: Bộ Công Cụ Chẩn Đoán Toàn Diện Cho Website Tốc Độ Cao
- Backorder WooCommerce: Hướng Dẫn Chi Tiết Từ A-Z Cho Người Bán Hàng
- WordPress Media Sau Cài Plugin Bị Lỗi: Nguyên Nhân Và Cách Khắc Phục Toàn Diện
- Twiddlers là gì? Khám phá công cụ tấn công Bluetooth và cách bảo vệ thiết bị
- Strict Transport Security là gì? Hiểu đúng và triển khai HSTS để bảo mật website
















