PHP(9)HTTP协议

HTTP协议

HTTP协议初步认识

HTTP协议概念
HTTP协议,既超文本传输协议。是一种详细规定了浏览器和万维网(www=world wide web)服务器之间互相通信的规则,通过因特网传送万维网文档的数据传送协议。
HTTP协议是用于www服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效。使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及那部分内容首先显示(如文本先于图形)等。

** HTTP协议特点**
1)客户/服务器模式:客户端(浏览器)/服务端
2)简单快速:客户向服务器请求服务时,只需要传送请求方法和路径。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3)灵活:HTTP允许传输任意类型的数据对象。
4)无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并受到客户的答应后,即断开连接。采用这种方式可以节省传输时间。
5)无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

HTTP协议分类
1)http请求协议:浏览器向服务器发起请求的时候需要遵循的协议
2)http响应协议:服务器向服务器发起响应时需要遵循的协议


请求协议

请求行
1)形式:

请求方式 资源路径 协议版本号

2)GET/inde.php HTTP/1.1
最早的时候HTTP协议有过1.0
请求行独占一行(第一行)
请求头
请求头就是各项协议内容:具体的协议内容不会每次都使用全部
1)Host:请求的主机地址(必须)
2)Accept:当前请求能够接受服务器返回类型
3)Accept-Language:接受的语言
4)User-Agent:客户浏览器所在点的一些信息

请求头不固定数量,每一个请求协议也是独占一行,最后一行空行(用来区分请求头和请求体)。

请求体
请求数据:POST请求会有请求体。GET请求所有的数据都是跟在URL之后,会在请求行中的资源路径上体现。
基本格式:

资源名字=资源值&资源名字=资源值……
在这里插入图片描述


响应协议

响应行
1)形式:

协议版本号 状态码 状态信息
HTTP/1.1 200 ok

2)200 ok:成功
3)403 Forbidden :没有权限
4)404 Not Found:未找到页面
5)500 Server Internal Error:服务器内部错误
响应头
具体协议内容
1)时间:Web,16 Sep 2017 11:43:33 GMT
2)服务器:Server:Apache/2.2.22(Win32) PHP/5.3.13
3)内容长度:Content-Length:1571,数据具体的字节数(响应体)
4)内容类型:Content-Type:text/html:告诉浏览器对应的数据格式

列举了几个常见的响应头,并不是全部:响应头一个占一行,最后一行空行。

响应体
实际服务器响应给服务器的内容
在这里插入图片描述
常用HTTP状态码
状态码 200 :成功
状态码 403 :forbidden,拒绝访问(没有权限)
状态码 404 :not found,找不到
状态码 500 :服务器问题

HTTP响应设置及使用

PHP中针对HTTP协议(响应)进行了底层设计,可以通过函数header来实现修改HTTP响应(响应头)

注意事项:
1、Header可以设计HTTP响应,因为HTTP协议的特点是:响应行,响应头,响应体。认为通过Header设计响应头时不应该有内容输出,所有产生了内容(即使是一个空格)输出系统都会认为响应头已经结束而响应体开始了,所以如果先输出内容后设置响应头(header使用),理论设置无效;
2、在PHP5以后增加了程序缓存的内容:允许服务器脚本在输出内容的时候,不直接返回浏览器而是先在服务器端使用程序缓存保留(php.ini中使用output_buffering),有了内容之后,在程序缓存内自动调整响应头和响应体(允许响应头在已经输出的内容之后再设置),但是此时会报错(警告)。
总结:header设置响应体之前不要有任何输出。

Location:重定向,立即跳转(响应体不用解析)
浏览器在解析服务器响应时先判定响应行,再判断响应头,最后判断响应体:Location在响应头中,所以浏览器一旦见到该协议项不再解析。
在这里插入图片描述
Refresh:重定向,定时跳转(响应体会解析)
延迟重定向:浏览器会根据具体时间延迟后再访问指定跳转连接:浏览器在准备跳转之前会继续解析HTTP协议。
在这里插入图片描述

Content-type:内容类型,MIME类型
通过内容告知(MIME类型),浏览器正确解析内容
在这里插入图片描述
Content-disposition:内容类型,MIME类型拓展,激活浏览器文件下载对话框
浏览器在解析内容的时候,默认是直接解析,那么有时候需要浏览器不解析,当作一个内容下载成文件。
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值