042-HTTP协议之方法与状态码

请求

请求行(请求方法 路径 协议)

请求头信息(格式为 key:value)

空行

主体(发送的内容 可选)

 

 

POST /test.php http/1.1

HOST:localhost

Content-type:application/x-www-form-urlencode

Content-length:5

 

age=3

 

 

 

返回

 

 

响应行 (协议 状态码 状态文本)

响应头信息(格式为key:value)

空行

主体(返回的内容 也可能没有)

 

 

http/1.1 200 OK

Content-type:text/html

Content-length:6

 

hello!

 

 

 

请求方法:

GET/POST/HEAD/ PUT/DELETE/TRACE/OPTIONS

 

HEAD:和GET基本一致,只是不返回内容。比如我们只是确认一个内容(比如照片)还正常存在,不需要返回照片的内容,用HEAD比较合适

 

 

TRACE :是你用了代理上网,比如用代理访问new.163.com ,你想看看代理有没有修改你的HTTP请求,你可以用TRACE来测试一下,163.com的服务器会把最后收到的请求返回给你。

 

OPTIONS:是返回服务器可用的方法。

 

状态码,状态文字

 

状态码是用来反应服务器响应情况的.

 最常用:200 OK,404 NOT FOUND   ,状态文字是用来描述状态码的,以便于人观察。

042-HTTP协议之方法与状态码

一些常用的状态码

   200 - 服务器成功返回网页

   301/2 - 永久/临时重定向

   304 Not Modified - 未修改

307保存重定向中有用的数据

   失败的状态码:

   404 - 请求的网页不存在

   503- 服务器暂时不可用

   500-服务器内部错误

 

Telnet模拟 浏览器获取图片缓存

042-HTTP协议之方法与状态码

 

第一步:新建一个header.php页

[php] view plain copy

  1. <?php  
  2.   
  3. header('Location:http://www.baidu.com');//默认是302重定向  
  4.   
  5. ?>  

第二步:分析

042-HTTP协议之方法与状态码

如何制定重定向呢?

指定用301重定向,

<?php   //header('Location:http://www.baidu.com');//默认是302重定向   header('Location:http://www.baidu.com',true,301);   ?>  

 

042-HTTP协议之方法与状态码

042-HTTP协议之方法与状态码

还有一个问题:

       对于一片新闻,get请求,重定向无所谓,还能看到原来的内容就行。但如果是POST数据,比如表单-->05.php,  05.php重定向->06.php。在06.php中会获取不到数据。

       解决:在05.php中用307保存重定向中有用的数据