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

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.

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 gồm có những trường, mỗi trường gồm có 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ị hoàn toàn có thể được sử dụng cho HTTP Header được xác lập trong RFC. Ngoài những trường được chỉ định, còn có những header không chuẩn hoàn toàn có thể được sử dụng để thêm thông tin do người dùng xác lập. Các header này thường mở màn bằng phần lan rộng ra x – .

Ví dụ về những trường Request Header

Dưới đây là 1 số ít ví dụ về những trường Request Header hoàn toàn có thể có .

Accept Fields

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

Accept

Trường này thông tin cho server loại tài liệu nào hoàn toàn 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: / ;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:

Nhiều loại phương tiện đi lại hoàn toàn có thể được phân tách bằng dấu phẩy. Giá trị tùy chọn q biểu lộ mức chất lượng trên thang điểm từ 0 đến 1. Ví dụ :

/
  • 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: /*.
/*
  • 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-CharsetMỗi giá trị được sử dụng được đưa vào một thứ tự ưu tiên được biểu lộ bằng cách sử dụng giá trị chất lượng tương đối được gọi là trọng số :

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-EncodingNếu một số ít bộ ký tự được chỉ định, hãy nhập chúng cách nhau bằng dấu phẩy. Ví dụ :

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-LanguageVí dụ :

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: ; 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

Nhiều ngôn từ hoàn toàn có thể được phân tách bằng dấu phẩy. Ví dụ : Có thể tra cứu những giá trị được phép trong RFC 1766 .

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: 

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 những kỳ vọng của client mà server phải cung ứng để request được giải quyết và 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: [email protected]

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 From hoàn toàn có thể được sử dụng trong những HTTP Header cho mục tiêu ghi nhật ký .

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

Nếu số cổng bị thiếu, điều này có nghĩa là cổng mặc định 80 .Các trường sau đây được sử dụng để chỉ định những điều kiện kèm theo nhất định theo đó những 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.Dấu hoa thị ( * ) cho biết hoàn toàn 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-RangeVí dụ :

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.Có thể sử dụng thẻ thực thể hoặc ngày : Nếu nội dung chưa được đổi khác, server sẽ trả về khoanh vùng phạm vi byte được chỉ định bởi header khoanh vùng phạm vi. Nếu không, hàng loạt 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 này được sử dụng giống như trường If-Modified-Since field .

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:  

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

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

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: / 

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 kỳ vướng mắc gì về HTTP Header hoặc muốn tìm hiểu và khám phá thêm những thông tin khác về HTTP, hãy để lại ở bên phản hồi bên dưới, BKHOST sẽ vấn đáp bạn trong thời hạn sớm nhất .P / s : Bạn cũng hoàn toàn có thể truy vấn vào Blog của BKHOST để đọc thêm những bài viết san sẻ kiến thức và kỹ năng về lập trình, quản trị mạng, website, domain, hosting, vps, server, email, … Chúc bạn thành công xuất sắc .