博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP 笔记与总结(2 )HTTP 协议的(请求行的)请求方法 及 (响应行的)状态码...
阅读量:6967 次
发布时间:2019-06-27

本文共 1512 字,大约阅读时间需要 5 分钟。

(请求行的)请求方法 包括:

GET,POST,HEAD,PUT,TRACE,DELETE,OPTIONS

注意:这些请求方法虽然是 HTTP 协议规定的,但是 Web Server 未必允许或支持这些方法。

 

HEAD 和 GET 基本一致,只是不返回内容,比如只是确认一个内容还正常存在,不需要返回具体内容。演示:

GET

 

HEAD

HEAD 方法只返回了响应的头信息。

 

PUT,往服务器上的资源传输内容:

服务器未必支持 HTTP 协议所规定的方法。

 

TRACE, 例如使用了代理上网(例如访问 news.163.com),可以使用 TRACE 查看代理有没有修改 HTTP 请求(163.com 的服务器就会把最后收到的请求返回):

同样 Not Allowed,对方的服务器不允许使用 TRACE 方法。

 

OPTIONS,返回服务器可用的请求方法:

OPTIONS 也不被允许。

用自己的本地服务器测试:

 

 

 

(响应行的)状态码、状态文字

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

状态文字是用来描述状态码的。

 

  状态码         定义     说明
  1XX   信息   接收到请求,继续处理
  2XX   成功   操作成功地收到,理解和接受
  3XX   重定向   为了完成请求,必须采取进一步措施
  4XX   客户端错误             请求的语法有错误,或者不能完全被满足              
  5XX   服务端错误    服务器无法完成明显有效地请求

 

常见的状态码

200 OK:服务器成功返回网页;

 

301 / 302:永久 / 临时 跳转,例:

301 重定向:

运行 redirect.php

  

 

302 重定向:

运行 redirect.php

  

 

 

 

注意:当 post 数据发送到 a.php,a.php(header("Location:b.php");) 重定向到了 b.php(print_r($_POST);),导致的结果是 b.php 接受到的数据是 Array ()。

原因:从表单到 a.php 是 post 请求,从 a.php 到 b.php 变成了 get 请求(从 f12 开发人员工具中可以看出)

解决方案:

如果想保持 post 请求,可以使用 307 重定向中保持原有数据。a.php:

即可。此时 a.php 到 b.php 仍然是 post 请求。

例:

test.html

	
Document
username:

 

a.php

 

b.php

 

 

修改 b.php

 

 

 

304 Not Modified:未修改(浏览器缓存),例如

当第一次访问一个页面:

 

当刷新几次页面:

客户端(Chrome)告诉服务我有这张图片,并且告诉服务器该图片时间上的编号(If-Modified-Since 和 If-None-Match),询问服务器该图片是否过期,如果过期则传给我最新的图片;服务器告诉浏览器(ETag 和 Last-Modified),这张图片没有进行修改过,因此浏览器就从缓存中取出这张图片,减小了服务器传输的压力。

使用 telnet 进行缓存的测试,正常 GET 请求图片:

返回二进制的图片信息;

 

加上以下信息:

If-Modified-Since:Sun, 02 Nov 2014 13:46:57 GMTIf-None-Match:"1860000000012c5-9d39-506e076b8dbb5"

返回:

 

 

失败的状态码:

404:请求的网页不存在;

503:服务器暂时不可用;

500:服务器内部错误

 

转载地址:http://gvfsl.baihongyu.com/

你可能感兴趣的文章
Win8 快捷键
查看>>
WINCE开发中,EBOOT模式下,TFTP方式无法下载NK镜像的问题解决方案
查看>>
实体映射基础(二)
查看>>
poj 2677 tour
查看>>
设计模式之模板方法模式
查看>>
lm-sensors工具安装和使用
查看>>
CI查询绑定
查看>>
FLASH基础概念 [一]
查看>>
产品力挺PHP完爆Java
查看>>
朴素贝叶斯分类器的应用-转载加我的理解注释
查看>>
与内存对齐,字符数组求sizeof相关的一些问题
查看>>
drbd
查看>>
ORACLE11G 将dataguard的rman备份恢复到测试环境的单机oracle中的详细过程
查看>>
gevent-zookeeper for windows
查看>>
php csv文件的读取,写入,输出下载操作详解
查看>>
spring4新功能官方下载地址
查看>>
Cocos Creator BMFont位图生成工具
查看>>
import static和import的区别
查看>>
联想 k2450 温度、耗电试验
查看>>
从MyEclipse到IntelliJ IDEA ——让你脱键盘,全键盘操作
查看>>