1. Home
  2. HTTP Headers

HTTP Headers

HTTP Header Fields are components of the header section in the HTTP request* and HTTP response* messages, transmitted from client to server. The last two might be a web browser and a web server. HTTP header fields contain instructions which determine the HTTP data transfer from server to client. The general HTTP Headers (request, response) are defined in the HTTP protocol.

HTTP Headers

Full list of all permanent headers as well as free to download provisional headers, added by developers, is available at IANA: Message Headers.

HTTP header fields consist of field name and field value. They can be generally divided into two types: request fields (used by the client) or response fields (used by the server). However, some HTTP headers such as Cache-Control, Via, Content-Length, Content-Type, etc. might be simultaneously used by client and server.

How to View HTTP Headers?

HTTP request or response headers are viewed via web browser tools such as Web Console for Firefox that can be initiated with the keyboard shortcut Ctrl + Shift + K.

You can also get HTTP headers by using the following PHP functions: getallheaders() apache_request_headers() for request or apache_response_headers() for response.

Here are some common client request headers:

request lineGET /http-headers-request-response-header-fields.html HTTP/1.1
HTTP headers (request)info-iconweb browserAccept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding: gzip, deflate
Cache-Control: no-cache
Host: help.superhosting.bg
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Firefox/45.0

Here are some common server response headers:

status lineHTTP/1.x 200 OK
HTTP headers (response)info-iconweb serverContent-Encoding: gzip
Content-Type: text/html; charset=utf-8
Last-Modified: Wed, 30 Mar 2016 08:15:07 GMT
Server: Apache
Vary: User-Agent

Managing HTTP Headers

HTTP headers are managed and configured in the mod_headers Apache module through modifying the .htaccess file. For example:

<IfModule mod_headers.c>
Header append Vary: User-Agent
</IfModule>

The mod_headers Apache module is enabled and supported on all Linux hosting servers by SuperHosting.BG.

HTTP headers can be also managed through the applications of the hosting account. This can be done via PHP, for example to set up the Last-Modified header that indicates the last modification date of the document:

$modify_time = filemtime($file);
header("Last-Modified: " . gmdate("D, d M Y H:i:s", $modify_time) . " GMT");

You can set HTTP server response headers through the header() PHP function. The headers_list() provides information which HTTP headers have been or will be sent to client. The headers_sent() enables you to check if and where the HTTP headers have been sent.

Be careful while using the header() PHP function otherwise you will receive this message: “Warning: Cannot modify header information – headers already sent by…”.

Updated on 05.04.2022
Was this article helpful?