HTTP相应分为四个部分:状态行,相应头,空行,体(相应内容)
状态行:协议版本 状态码 状态描述
HTTP/1.1 200 对状态码的描述
相应头:HTTP协议内容
空行:
体:相应一定会存在体
常见的相应头
server:做事器信息
date:做事器相应的韶光
last-modified:当前要求文件末了被修正的韶光
content-length:相应体的数据长度,单位是字节
content-type:相应体的类型
location:重定向
refresh:刷新,包含韶光和指定的url
content-encodeing:相应文件的编码(不是字符集,是格式)
cache-control:缓存掌握,no-cache,不该用缓存、
keep-alive:保持连接,timeout表示超时时间,Max表示系统会自动判断连接次数,以是当一个浏览器向网站发出要求最长能够timeoutmax的韶光内
一个普通相应头
如何能够通过PHP设置相应头(HTTP的协议内容)?
header函数,便是对相应头做处理。
header(‘Content-type:text/html;charset=utf-8’);
状态码
1XX:做事器吸收要求,连续处理
2XX:成功
3XX:重定向
4XX:要求缺点
5XX:做事器缺点
常见状态码
200:成功,浏览器的要求已经被做事器处理完毕
302:已经跳转
304:所要求文件没有被修正,做事器见告浏览器读取本地缓存文件即可
400:bad request,坏了的要求,要求有缺点
403:forbidden,没有权限访问对应的文件
404:not found,所要求的文件在做事器不存在
502:bad gateway,做事器没有从上级做事器得到精确的结果
浏览器和做事器到底是如何建立在HTTP协议上事情的呢?
PHP仿照相应
1.设置浏览器解析的字符集编码
header(‘Content-type:text/html;charset=utf-8’);
2.跳转
header(‘Location:url’);
demo02_location.php
要求demo02_location.php的相应
httpwatch效果
3.刷新
header(‘Refresh:time,url’)
demo03_refresh.php
demo03_refresh.php的相应
刷新到其他界面
refresh和location的差异
1.location是立即跳转,不会等到页面显示数据,就立马跳转。浏览器在解析HTTP协议的时候,碰到了location,就会立时组织HTTP协议进行二次要求
2.refresh是在浏览器端先安歇一定韶光之后,再跳转。浏览器解析HTTP协议的时候,碰到了refresh,创造须要勾留一定韶光,再组织HTTP协议进行二次要求
3.refresh能够将脚本内的其他内容进行先输出后跳转,而location不能显示脚本内的其他数据。
4.发送图片
header(‘Content-type:image/jpg’);
demo04_image.php
demo04_image.php的相应及效果
把稳:content-type:image/图片类型,该图片类型要与本身图片的类型同等。不同的浏览器在识别jpg等图片的时候,须要做成jpeg
5.文件下载
header(‘Content-type:application/octet-stream’)
header(‘content-disposition:attachment;filename’)
demo05_download.php
demo05_download.php的相应
效果因此附件的形式来保存相应的东西。
PHP仿照HTTP要求1.PHP能够与Apache进行连接
fsockopen($domainname,$port,$errno,$errinfo,$timeout):连接Apache,发出一个要求,得到一个要求资源,得到一个连接资源
2.PHP仿照发送HTTP要求
fwrite($handle,$string):向一个资源中写入指定内容
3.得到相应,便是通过fsockopen这个连接来得到相应
fgets():从一个资源中获取一行或者指定长度数据
4.输出全部数据
效果