一、何为HTTP协议
协议就是在同等层之间的实体通信时,有关通信规则和约定的集合就是该层协议。
HTTP是一个应用层协议,由请求和响应构成,是一个标准的客户端服务器模型。HTTP是一个无状态的协议。
二、工作流程
三、HTTP请求信息和响应信息的格式
3.1 请求信息
1、get请求
通过本机cmd进行试验,可本机搭建wamp服务器。
telnet登陆本机,键入请求行和请求头部信息后查看结果。
请求:
1)请求行
2、请求头信息
3、请求主体信息
4、头信息结束后和主体信息之间要空一行
请求行又分3部分
请求方法、请求路径、所用的协议
请求方法:GET/POSTPUT DELETETRACEOPTIONS
所用的协议:目前一般是HTTP/1.1,0.9,1.0已基本不用
浏览器能发送HTTP协议,HTTP协议一定要浏览器来发送吗?
答:不是,HTTP既然是一种协议,那么要满足这种协议,什么工具都可以发。
2实现POST请求
<?php
//这个程序是把收到的POST数据,写入文本
//要求用telnet来请求他
/*$方法 $路径 $版本
请求行
主体内容……
据上:
POST /test02.php HTTP/1.1
Host:localhost
Content-type:application/x-www-form-urlencoded
Content-length:23 【空一行】
username=zhangsan&age=28
*/
$str = implode($_POST,"\n");
file_put_contents('./post.txt',$str);
echo "write ok";
?>
请求行(请求方法 路径 协议) 头信息(格式为key:value) 空行 主体信息(可选)(发送内容)
例: POST /test.php HTTP/1.1 HOST:localhost Content-type: application/x-www-form-urlencoded Content-length:23
Age=3 |
响应行(协议 状态码 状态文字) 响应头信息(格式为key:value) 空行 主体信息(也可能没有)
例: HTTP/1.1 200 OK Content-type: text/html Content-length:23
Age=3
|
请求方法有哪些
GET POST HEAD PUT TRACE DELETE OPTIONS
注意:这些请求方法虽然HTTP协议里规定的,但是WEB SERVER未必允许或支持这些方法
HEAD:和GET基本一致,只是不返回内容。
比如我们只是确定一个内容还正常存在,不需要返回照片的内容,这时使用HEAD比较合适。
TRACE:用了代理上网,比
如用代理访问new.163.com,看看代理有没有修改http请求。
Options:返回服务器可用的方法。
3.2状态码,状态文字:
状态吗 用来反映服务器响应情况
最常见的如200 OK , 404 NOT FOUND
状态码 | 定义 | 说明 |
1XX | 信息 | 接收到请求,继续处理 |
2XX | 成功 | 操作成功地收到,理解和接受 |
3XX | 重定向 | 为了完成请求,必须采取进一步措施 |
4XX | 客户端错误 | 请求的语法有错误或不能完全被满足 |
5XX | 服务端错误 | 服务器无法完成明显有效的请求 |
200 服务器成功返回网页
301/302 永久/临时重定向
304 Not Modified –未修改(缓存)
307 重定向中保持原有请求数据
失败的状态码:
404 – 请求的网页不存在
503 – 服务器暂时不可用
500 - 服务器内部错误
304实现的方式
3.3重定向问题
//header(),重定向会导致请求的数据丢失。
参考:
百度百科:http://baike.baidu.com/link?url=BAkDVDUQj6KiUNNUxnpvhhBIZ_gDg_ExkftdF13eM7VEbqlesekdmY2gqqj6dmLW7cSENBV2s3uiOzZAtZX8A_
燕十八视频教程