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ó.
Tóm Tắt
HTTP Header là gì ?
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:
Xem thêm: Aliases là gì? Hướng dẫn cấu hình Alias domain trong Cpanel – Trung tâm hỗ trợ kỹ thuật | MATBAO.NET
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 .
Source: https://final-blade.com
Category : Kiến thức Internet