HTTP相应分为四个部分:状态行,相应头,空行,体(相应内容)

状态行:协议版本 状态码 状态描述

HTTP/1.1 200 对状态码的描述

php响应重蔚php进修第三十六天笔记HTTP响应 SQL

相应头: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.输出全部数据

效果