—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程主讲:燕十八课时:6课时学习交流:官方论坛:老师博客:老师微博:协议—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程http协议学习目录原理:1.形象理解http协议2.动手试试http协议3.http协议3部分介绍实战:4.PHP+socket编程发送http请求5.HTTP协议与COOKIE6.HTTP协议防盗链优化:7.HTTP协议与缓存控制8.HTTP协议与内容压缩9.分块传输,持久链接与反向ajax—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程1-1什么是协议http协议,ftp协议,smtp协议,离婚协议....协议就是按规矩说话你来问我来答你怎么问我怎么答—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程客户端服务器响应请求1-2什么是http协议http协议即按一定规则,向服务器要数据,或发送数据.而服务器按一定规则,回应数据—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程2-1动手试试http协议—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程HTTP的消息类型共分为两大类:请求(Request)消息:由客户端发给服务器的消息。其组成包括:请求行(Request-Line),可选的头域(HeaderField),及实体(Entity-Body)。响应(Response)消息:是服务端回复客户端请求的消息,其组成包括状态行(Status-Line),可选的头域(HeaderField),及实体(Entity-Body)。3-1http协议的两大类—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程请求消息结构:Full-Request=Request-Line*(General-Header|Request-Header|Entity-Header)CRLF[Entity-Body]请求消息由请求行(Request-Line)、报头和实体主体三部分组成。3-2http协议的两大类—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程方法名备注GET获取一个URL指定的资源,即资源实体HEAD获取一个指定资源的信息,POST向服务器提交数据PUT向服务器提交资源DELETE请求源服务器删除Request-URI标识的资源TRACE网络跟踪CONNECT与PROXY之间的连接管理OPTIONS查询能力3-2http协议请示方法方法名区分大小写,并不是web服务器支持所有的方法—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程请求消息示例:GET:closeUser-agent:Mozilla/4.0Accept-Encoding:gzip,compressAccept-language:enCRLFEntity-Body3-3http协议请求示例—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程状态行结构:Status-Line=HTTP-VersionSPStatus-CodeSPReason-PhraseCRLF例如:HTTP/1.1200OK状态行由协议版本、状态码、原因短语3个元素组成,各个元素之间用SP分隔。状态码字段由三个数字组成,标识客户请求方法的结果。状态码有5种可能的值,如下表所示。3-4http协议响应格式—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程3-7利用协议发POST请求—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程响应消息示例:HTTP/1.1200OKConnection:closeDate:Thu,13Oct200503:17:33GMTServer:Apache/2.0.54(Unix)Last—Nodified:Mon,22Jun199809;23;24GMTContent—Length:682lContent-Type:text/html3-5http协议响应格式—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程状态码定义说明1XX信息接收到请求,继续处理2XX成功操作成功地收到,理解和接受3XX重定向为了完成请求,必须采取进一步措施4XX客户端错误请求的语法有错误或不能完全被满足。5XX服务端错误服务器无法完成明显有效的请求。3-6http响应中的状态码—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程3-6http响应中的状态码200–服务器成功返回网页301/2-永久/临时重定向304–未修改失败的状态码:404–请求的网页不存在503–服务器暂时不可用500–服务器内部错误—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程4-1PHP+socket请求原理1:连接某URL的80端口(打开)2:发送头信息(写)3:读取网页内容(读)socket操作远程的文件和读写本地的文件一样容易,把本地文件看成通过硬件传输,远程文件通过网线传输就行了.—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程4-2PHP+socket请求类要求:不看老师的代码,自己写一个可以get,post请求的http请求类—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程5-1HTTP协议角度看cookie服务器端在HTTP协议的响应中,发送set-cookie的头信息客户端(浏览器)分析头信息,储存cookie值以后的访问中,客户端(浏览器)每次都在请求头信息中带着cookie值.由右图可以看出,cookie是很容易伪造的.—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程5-2cookie实战实战题目:根据所学HTTP协议知识,用PHP+SOCKET编程模拟登陆并发帖—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程6-1referer头与防盗链RewriteEngineOnRewriteCond%{REQUEST_FILENAME}.*\.(jpg|jpeg|png|gif)[NC]RewriteCond%{HTTP_REFERER}!localhost[NC]RewriteRule.*\.(jpg|jpeg|png|gif)[NC]—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程6-2伪造referer与反防盗链实战实战题目:根据所学HTTP协议知识,用PHP+SOCKET伪造referer头并采集防盗链后的图片—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程7-1利用协议控制缓存ExpiresActiveOnExpiresByTypeimage/jpegaccessplus1month相关模块:mod_expires—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程7-2利用协议取消缓存服务器端清除FilesMatch\.(jpg|gif|png)$Cache-Control:no-cacheHeaderunsetEtagHeaderunsetLast-Modified/FilesMatch客户端:Cache-Control:no-cachePragma:no-cachemod_header模块—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程8-1利用编码压缩提高性能ifmodulemod_deflate.cDeflateCompressionLevel6AddOutputFilterByTypeDEFLATEtext/plainAddOutputFilterByTypeDEFLATEtext/htmlAddOutputFilterByTypeDEFLATEtext/xmlAddOutputFilterByTypeDEFLATEtext/cssAddOutputFilterByTypeDEFLATEtext/javascriptAddOutputFilterByTypeDEFLATEapplication/xhtml+xmlAddOutputFilterByTypeDEFLATEapplication/xmlAddOutputFilterByTypeDEFLATEapplication/rss+xmlAddOutputFilterByTypeDEFLATEapplication/atom_xmlAddOutputFilterByTypeDEFLATEapplication/x-javascriptAddOutputFilterByTypeDEFLATEapplication/x-httpd-phpAddOutputFilterByTypeDEFLATEimage/svg+xml/ifmodule—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程HTTP/0.9:从1990年就已经用来作为的传输协议,当时非常简单,只支持GET方法,响应中携带的消息必须HTML文件。HTTP/1.0:1996发布RFC1945,90年后,基于0.9的各种客户端和服务端的扩展层出不穷,把这些扩展进行综合推出新标准HTTP/1.0。HTTP/1.1:1997推出RFC2068,HTTP/1.1的标准。HTTP/1.1:1999推出RFC2616,废弃了RFC2068标准。—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程客户/服务器模式:一个服务器可以为分布在世界各地的许多客户服务。简单:HTTP本身处理简单,有效地处理大量请求,HTTP服务器程序规模小,所以经由HTTP的通信速度快,与其它协议相比,时间开销小得多。灵活:HTTP允许传输任意类型的数据对象,可以通过Content-type来指定数据类型。无状态:HTTP是无状态的协议,缺少状态记忆,运行速度高,服务器应答速度较快。—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程运行Explorer的PC机运行Navigator的MAC机运行NCSAWeb服务器软件的服务器HTTP请求HTTP响应HTTP请求HTTP响应HTTP定义的事务处理由以下四步组成:客户端与服务器端建立连接客户端向服务器端发送请求服务器端向客户端回复响应断开连接—精品PHP公开课免费直播!zixue.it燕十八精品PHP教程