What are HTTP Headers?
HTTP stands for “Hypertext Transfer Protocol”. The entire World Wide Web uses this protocol. It was established in the early 1990′s. Almost everything you see in your browser is transmitted to your computer over HTTP. For example, when you opened this article page, your browser probably have sent over 40 HTTP requests and received HTTP responses for each.
HTTP headers are the core part of these HTTP requests and responses, and they carry information about the client browser, the requested page, the server and more.
Example
When you type a url in your address bar, your browser sends an HTTP request and it may look like this:
- GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1
- Host: net.tutsplus.com
- User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5 (.NET CLR 3.5.30729)
- Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
- Accept-Language: en-us,en;q=0.5
- Accept-Encoding: gzip,deflate
- Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
- Keep-Alive: 300
- Connection: keep-alive
- Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120
- Pragma: no-cache
- Cache-Control: no-cache
First line is the “Request Line” which contains some basic info on the request. And the rest are the HTTP headers.
After that request, your browser receives an HTTP response that may look like this:
- HTTP/1.x 200 OK
- Transfer-Encoding: chunked
- Date: Sat, 28 Nov 2009 04:36:25 GMT
- Server: LiteSpeed
- Connection: close
- X-Powered-By: W3 Total Cache/0.8
- Pragma: public
- Expires: Sat, 28 Nov 2009 05:36:25 GMT
- Etag: "pub1259380237;gz"
- Cache-Control: max-age=3600, public
- Content-Type: text/html; charset=UTF-8
- Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT
- X-Pingback: http://net.tutsplus.com/xmlrpc.php
- Content-Encoding: gzip
- Vary: Accept-Encoding, Cookie, User-Agent
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
The first line is the “Status Line”, followed by “HTTP headers”, until the blank line. After that, the “content” starts (in this case, an HTML output).
When you look at the source code of a web page in your browser, you will only see the HTML portion and not the HTTP headers, even though they actually have been transmitted together as you see above.
These HTTP requests are also sent and received for other things, such as images, CSS files, JavaScript files etc. That is why I said earlier that your browser has sent at least 40 or more HTTP requests as you loaded just this article page.
Now, let’s start reviewing the structure in more detail.
How to See HTTP Headers
I use the following Firefox extensions to analyze HTTP headers:
In PHP:
- getallheaders() gets the request headers. You can also use the $_SERVER array.
- headers_list() gets the response headers.
Further in the article, we will see some code examples in PHP.
Комментариев нет:
Отправить комментарий