http协议之方法与状态码

http协议分为两个部分,第一个部分是请求,第二个部分是响应

请求:

  1. 请求行(请求方法,路径, 协议名称)
  2. 头信息(key: value)
  3. 空行然后主体信息(发送内容)
POST 10606/02.php HTTP/1.1
HOST: localhost
content-type:application/x-www-from-urlencoded
contect-length: 24


username = zhangsan&age=23

响应:

  1. 响应行(协议 状态码, 状态文字)
  2. 响应头信息
  3. 空行
  4. 主体信息

请求方法:

GET
POST
HEAD
PUT
TRACK
DELETE
OPTIONS

注意这些请求方法虽然HTTP协议里规定的,但是WEB SERVE未必允许支持这些

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

TRACE:是你用代理上网,如用代理访问new.163.com,你想看看代理有没有修改你的http请求,可以
用TRACE进行检测一下

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


状态码:反应服务器的响应情况,最常见的是404
状态文字:状态文字只是用来描述状态码的,比如说OK

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

我们主要记住常用的几个

Response:
200-服务器成功返回网页

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

header('Location: http://www.baidu.com');//默认是302
//指定用301重定向,true参加意指替换原来的头信息
header('Location: http://www.baidu.com', true, 301);//现在状态码是301

对于一篇新闻,GET请求重定向无所谓,还能看到原来的内容
但是如果是POST数据,比如表单指向05.php,而05.php重定向06.php,这会导致数据丢失

header('Location: 06.php');
exit:
print_r($_POST);

这个问题如何进行处理
保持重定向之前的数据
我们可以使用307

header('Location: 06.php',true, 307);
exit:
print_r($_POST);

307 重定向保持原来的数据
重要:
304 NOT Modified 未修改——>没有改变,这可以使服务器减轻压力

这里主要使用ETAG技术

ETag是HTTP响应头是资源的特定版本的标识符。这可以让缓存更高效,并节省带宽,因为如果内容没有改变,Web服务器不需要发送完整的响应。而如果内容发生了变化,使用ETag有助于防止资源的同时更新相互覆盖(“空中碰撞”)。

404 请求的网页不存在
503 服务器暂时不可用

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值