#

HTTP Header là gì? Ví dụ về các trường Request Header

World wide web sử dụng giao thức HTTP để xác định thông điệp được định dạng, truyền tải cũng như các hành động mà web server cần phản hồi. Trong đó HTTP Header là phần đầu tiên của HTTP. Bài viết hôm nay BKHOST sẽ cùng các bạn tìm hiểu về HTTP Header và một số ví dụ về các trường header request có thể có.

HTTP Header là gì?

HTTP Header la gi

HTTP Header là một phần của Giao thức truyền siêu văn bản (HTTP) và truyền thông tin bổ sung trong các request hoặc phản hồi HTTP. Thông qua server web của trang web được gọi mà dữ liệu được gửi tới trình duyệt, thông qua HTTP Header mà server và trình duyệt trao đổi thông tin meta về tài liệu.

Đăng ký dịch vụ Hosting tại BKHOST

BKHOST cung cấp dịch vụ Hosting với nhiều mức giá và cấu hình khác nhau, đáp ứng nhu cầu của tất cả khách hàng.

Cam kết hoàn tiền lên đến 100% nếu Quý khách không hài lòng với chất lượng sản phẩm, dịch vụ.

Rất nhiều chương trình khuyến mãi cực hấp dẫn đang chờ bạn. Đăng ký ngay hôm nay!

hosting việt

HTTP request chứa header có thông tin như ngày request, liên kết giới thiệu hoặc ngôn ngữ ưa thích. Phản hồi HTTP cũng chứa trường header trong đó thông tin của nó được gửi tới trình duyệt của người dùng qua server. Đối với người dùng cuối thì trao đổi thông tin này thường là vô hình.

Các HTTP Header bao gồm các trường, mỗi trường bao gồm một dòng. Mỗi dòng chứa một cặp tên/giá trị – được gọi là cặp khóa-giá trị – được phân tách bằng dấu hai chấm và kết thúc bằng dấu ngắt dòng.

Các giá trị có thể được sử dụng cho HTTP Header được xác định trong RFC. Ngoài các trường được chỉ định, còn có các header không chuẩn có thể được sử dụng để thêm thông tin do người dùng xác định. Các header này thường bắt đầu bằng phần mở rộng x-.

Ví dụ về các trường Request Header

Dưới đây là một số ví dụ về các trường Request Header có thể có.

Accept Fields

Để chỉ định loại phản hồi nào được server chấp nhận thì các trường sau đây được sử dụng:

Accept

Trường này thông báo cho server loại dữ liệu nào có thể được trả về.

Trường Accept trong request HTTP có thể được sử dụng để chỉ định các loại MIME nhất định được client chấp nhận. Cú pháp chung như sau:

<>Accept: <MIME_type>/<MIME_subtype> ;q=value

Nhiều loại phương tiện có thể được phân tách bằng dấu phẩy. Giá trị tùy chọn q biểu thị mức chất lượng trên thang điểm từ 0 đến 1. Ví dụ:
Accept: text/plain; q = 0,5, text/html, text/x-dvi; q = 0.8, Text/x-c

Các chỉ thị có sẵn:

  • client hỗ trợ chính xác một loại MIME, chẳng hạn như văn bản/html:

<MIME_type>/<MIME_subtype>

  • MIME không có loại phụ được chỉ định. image/* khớp với image/png, image/svg, image/gif và tất cả các loại hình ảnh khác: /*.

<MIME_type>/*

  • Bất kỳ loại MIME nào:

*/*

Mỗi giá trị được sử dụng được đưa vào một thứ tự ưu tiên được biểu thị bằng cách sử dụng giá trị chất lượng tương đối được gọi là trọng số:
;q= (trọng số hệ số q)

Accept-Charset

Trường này được sử dụng trong các HTTP Header để chỉ định bộ ký tự nào mà client chấp nhận cho phản hồi.

Accept-Charset: character-set

Nếu một số bộ ký tự được chỉ định, hãy nhập chúng cách nhau bằng dấu phẩy. Ví dụ:
Accept-Charset: iso-8859-5, Unicode-1-1; q = 0,8

Accept-Encoding

Trường này giới hạn các thuật toán mã hóa được chấp nhận trong phản hồi. Cú pháp:

Accept-Encoding: encodings

Ví dụ:
Accept-Encoding: gzip
Accept-Encoding: *
Accept-Encoding: gzip;q=0.7

Accept-Language

Trường header Accept-Language cho server biết ngôn ngữ mà con người có thể đọc được mà server dự kiến ​​sẽ trả về. Đây là một dấu hiệu và không nhất thiết phải được kiểm soát hoàn toàn bởi người dùng. Server phải luôn tránh ghi đè lựa chọn rõ ràng của người dùng. Cú pháp là:

Accept-Language: <language>; q=qvalue

Nhiều ngôn ngữ có thể được phân tách bằng dấu phẩy. Ví dụ:
Accept-Language: en-US; q=0.9

Có thể tra cứu các giá trị được phép trong RFC 1766.

Authorization

Trường Authorization được sử dụng trong HTTP Header để xác thực tác nhân người dùng với server. Cú pháp như sau:

Authorization:<type> <credentials>

Cookie

header request HTTP Cookie chứa các cookie HTTP được lưu trữ trong các cặp tên/giá trị được server gửi trước đó bằng header Set-Cookie. Hành vi này có thể bị chặn bởi các trình duyệt để không có cookie nào được truyền đến server.

Cookie: name1=value1; name2=value2; name3=value3

Expect

Trường header request HTTP Mong đợi chỉ định các kỳ vọng của client mà server phải đáp ứng để request được xử lý đúng cách.

Cú pháp chung như sau:

Expect : 100-continue

From

Trường From của HTTP Header chứa địa chỉ email của người dùng kiểm soát ứng dụng khách request. Thí dụ:

From: bkhost@example.com

Trường From có thể được sử dụng trong các HTTP Header cho mục đích ghi nhật ký.

Host

Trường server được sử dụng trong các HTTP Header để chỉ định server internet và số cổng cho tài nguyên được request. Cú pháp là:

Host: host:port

Nếu số cổng bị thiếu, điều này có nghĩa là cổng mặc định 80.

If Fields

Các trường sau đây được sử dụng để chỉ định các điều kiện nhất định theo đó các tệp được request sẽ được trả về.

If-Match

Trường header này nhắc server chỉ gửi tệp được request nếu nó khớp với các thẻ thực thể được chỉ định. Cú pháp là:

If-Match: entity-tag

Ví dụ:
If-Match: "*"

Dấu hoa thị (*) cho biết có thể gửi bất kỳ tệp nào.

If-Modified-Since

If-Modified-Since được chỉ định trong HTTP Header, tài nguyên được request sẽ chỉ được server phân phối nếu nó đã được thay đổi kể từ ngày được chỉ định. Nếu không, sẽ không có giao hàng và trang sẽ được tải từ bộ đệm của trình duyệt. Cú pháp:

If-Modified-Since: HTTP date

Ví dụ:
If-Modified-Since: Sat, 13 Oct 2017 15:16:27 GMT

If-None-Match

Trường này nhắc server chỉ gửi tệp được request nếu nó không khớp với bất kỳ thẻ thực thể nào được chỉ định. Cú pháp là:

If-None-Match: entity-tag

Ví dụ:
If-None-Match: "xyzzy"
If-None-Match: *

If-Range

Trường header If-Range được sử dụng trong các HTTP Header để chỉ request một phần nội dung bị thiếu nếu nội dung chưa được thay đổi và toàn bộ nội dung nếu một thay đổi đã được thực hiện đối với nó. Cú pháp như sau:

If-Range: entity-tag/HTTP date

Có thể sử dụng thẻ thực thể hoặc ngày:
If-Range: Sat, 13 Oct 2017 15:16:27 GMT

Nếu nội dung chưa được thay đổi, server sẽ trả về phạm vi byte được chỉ định bởi header phạm vi. Nếu không, toàn bộ tài liệu mới được trả lại.

If-Unmodified-Since

Cú pháp chung là:

If-Unmodified-Since: HTTP date

Trường này được sử dụng giống như trường If-Modified-Since field.

Proxy-Authorization

Trường header Proxy-Authorization cho phép client xác định chính nó hoặc người dùng với proxy. Cú pháp:

Proxy-Authorization: <type> <credentials>

Range

Trường header Phạm vi chỉ định các phạm vi phụ của nội dung được request. Cú pháp là:

Range: bytes-unit=first-byte-pos "-" [last-byte-pos]

Các giá trị “first-byte-pos” và “last-byte-pos” chỉ định byte đầu tiên và byte cuối cùng của nội dung được bao gồm nhưng không nhất thiết phải được chỉ định cả hai. Nhiều khu vực nội dung có thể được phân tách bằng dấu phẩy.

Referrer

Trường header Người giới thiệu cho phép khách hàng chỉ định địa chỉ (URL) của tài nguyên mà URL được request từ đó. Cú pháp chung như sau:

Referer: URL

Ví dụ:
Referer: http://www.example.com

User-Agent

Trường header này gửi thông tin về client đến server. Ví dụ, cú pháp có thể như sau:

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

Tổng kết về HTTP Header

Qua bài viết trên Bkhost hy vọng đã giúp các bạn hiểu hơn về HTTP Header cũng như các trường header của HTTP Header.

Nếu còn gặp bất cứ vướng mắc gì về HTTP Header hoặc muốn tìm hiểu thêm những thông tin khác về HTTP, hãy để lại ở bên bình luận bên dưới, BKHOST sẽ trả lời bạn trong thời gian sớm nhất.

P/s: Bạn cũng có thể truy cập vào Blog của BKHOST để đọc thêm các bài viết chia sẻ kiến thức về lập trình, quản trị mạng, website, domain, hosting, vps, server, email,… Chúc bạn thành công.

Đăng ký dịch vụ Hosting tại BKHOST

BKHOST cung cấp dịch vụ Hosting với nhiều mức giá và cấu hình khác nhau, đáp ứng nhu cầu của tất cả khách hàng.

Cam kết hoàn tiền lên đến 100% nếu Quý khách không hài lòng với chất lượng sản phẩm, dịch vụ.

Rất nhiều chương trình khuyến mãi cực hấp dẫn đang chờ bạn. Đăng ký ngay hôm nay!

cho thuê hosting

Tôi là Trịnh Duy Thanh, CEO & Founder Công ty Cổ Phần Giải Pháp Mạng Trực Tuyến Việt Nam - BKHOST. Với sứ mệnh mang tới các dịch vụ trên Internet tốt nhất cho các cá nhân và doanh nghiệp trong nước và quốc tế, tôi luôn nỗ lực hết mình nâng cấp đầu tư hệ thống phần cứng, nâng cao chất lượng dịch vụ chăm sóc khách hàng để đem đến những sản phẩm hoàn hảo nhất cho người tiêu dùng. Vì vậy, tôi tin tưởng sẽ đem đến các giải pháp CNTT mới nhất, tối ưu nhất, hiệu quả nhất và chi phí hợp lý nhất cho tất cả các doanh nghiệp.
Bình luận

Thanh toán linh hoạt

Chúng tôi chấp nhận thanh toán như ATM, Visa, Internet Banking, Paypal, Baokim, Ngân lượng

Gọi ĐT tư vấn ngay
Chat ngay qua Zalo
Chat ngay qua Messenger