четверг, 19 января 2012 г.

HTTP Headers for Dummies


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:
  1. GET /tutorials/other/top-20-mysql-best-practices/ HTTP/1.1  
  2. Host: net.tutsplus.com  
  3. 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)  
  4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  
  5. Accept-Language: en-us,en;q=0.5  
  6. Accept-Encoding: gzip,deflate  
  7. Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7  
  8. Keep-Alive: 300  
  9. Connection: keep-alive  
  10. Cookie: PHPSESSID=r2t5uvjq435r4q7ib3vtdjq120  
  11. Pragma: no-cache  
  12. 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:
  1. HTTP/1.x 200 OK  
  2. Transfer-Encoding: chunked  
  3. Date: Sat, 28 Nov 2009 04:36:25 GMT  
  4. Server: LiteSpeed  
  5. Connection: close  
  6. X-Powered-By: W3 Total Cache/0.8  
  7. Pragma: public  
  8. Expires: Sat, 28 Nov 2009 05:36:25 GMT  
  9. Etag: "pub1259380237;gz"  
  10. Cache-Control: max-age=3600, public  
  11. Content-Type: text/html; charset=UTF-8  
  12. Last-Modified: Sat, 28 Nov 2009 03:50:37 GMT  
  13. X-Pingback: http://net.tutsplus.com/xmlrpc.php  
  14. Content-Encoding: gzip  
  15. Vary: Accept-Encoding, Cookie, User-Agent  
  16.   
  17.   
  18.   
  19.   
  20. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  21.   
  22. <!-- ... rest of the html ... -->  
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:
Further in the article, we will see some code examples in PHP.

Комментариев нет:

Отправить комментарий