Chinaunix首页 | 论坛 | 博客
  • 博客访问: 29336560
  • 博文数量: 2065
  • 博客积分: 10377
  • 博客等级: 上将
  • 技术积分: 21525
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-04 17:50
文章分类

全部博文(2065)

文章存档

2012年(2)

2011年(19)

2010年(1160)

2009年(969)

2008年(153)

分类:

2009-12-15 16:15:57

HTTP理论之HTTP头部信息专题整理

                                                                           By hkebao@126.com

翻译自:

一、 HTTP  Request  Structure

分析HTTP请求的结构

截图如下:

请求方法

GET:下载一段HTMLCSSJS、图片

如果表单中也用了GET提交的话就是这样的:

  

First Name:    

Last Name:      

  

  

相当于是:·  GET /foo.php?first_name=John&last_name=Doe&action=Submit HTTP/1.1  

POST:发送数据到服务器。区别与GET 一个是发送到服务器一个是从服务器下载。

如果要提交大的数据量的时候一定不要用GET。用GET是有限制的!

HEAD:检索HTTP头的相关信息

有的时候我们想要看一下文档是否存在。文档有没有被修改过。那我们就可以发送一个HEAD请求过去看。

我们不关心文档内容。

 

HTTP Response 结构

HTTP返回状态码

401 如果需要验证用户登录信息的时候你没有登录就会提示401

403 直接访问一个文件夹但是里面没有index.html页面而且服务器做了设置就会报403

HTTP Requests 里面的key-value 选项对

Host : 域名 (因为同一个IP值可以解析到多个域名)

If-Modified-Since:

If a web document is already cached in your browser, and you visit it again, your browser can check if the document has been updated by sending this:

1.      If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT  

If-Modified-Since: Sat, 28 Nov 2009 06:38:19 GMT

If it was not modified since that date, the server will send a "304 Not Modified" response code, and no content - and the browser will load the content from the cache.

理解:如果我们的页面设置了客户端缓存的话那如果用户下载了这个页面到本地就会被缓存起来。当浏览器下次去请求这个页面的时候会检查当前缓存里面的页面这个值。如果从这个时间到现在页面没有作过修改那表示不用再从服务器下载了。直接读本地缓存。

服务器端的代码:

If(isset($_SERVER[‘HTTP_IF_MODIFIED_SINCE’])) {

     If($last_modify_time == strtotime($_SERVER[‘HTTP_IF_MODIFIED_SINCE’])) {

     //表示此页面没有被修改过了可以直接返回304

     Header(“HTTP/1.1 304 Not modified”);

     Exit;

}

}

Referer

显示HTTP来源的前一个地址值。比如

If(isset($_SERVER[‘HTTP_REFERER’])) {

     $url_info = parse_url($_SERVER[‘HTTP_REFERER’]);

     If($url_info[‘host’] == ‘’) {

     Echo “come from google.com”;

}

}

能够通过取到前一页面URL地址的相关数组。这个数组里面会有许多这个前一页面里面的相关属性数据包括HOST、等!

Http Headers in HTTP Response

Cache-Control

这种缓存机制有可能是来自于网关、也有可能是来自于ISP的缓存。

Cache-Control: max-age=3600, public  

(缓存的好处:有了缓存就可以减少我们的站点请求次数。减轻站点的压力!所以我觉得对于一些静态页面或CMS生成的页面即更新频率不高的页面我们可以设置长一点的页面缓存!)

Content-Type

Content-Type: text/html; charset=UTF-8  

Content-Length : 声明大小即下载的大小!

 

Last-Modified

说明文档最后修改时间。

Location

用来实现重定向处理。如果HTTP响应代号是301302 服务器也能够发送这个HTTP

Set-cookie

更新站点的COOKIE值。

 

博客地址:

阅读(1009) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2009-12-15 18:02:15

http://www.cnblogs.com/andylaufzf/archive/2009/03/26/1422255.html

chinaunix网友2009-12-15 17:59:21

http://www.phpletter.com/DOWNLOAD/