Day45

it2026-08-27  5

HTTP协议

重要性:无论是以后用的webserverice,还是用rest做大型架构,都离不开对Http协议的认识

甚至可以简化的说webserverice=http协议+XML

Rest+HTTP协议+json

各种APL也一般是用http+XML/json来实现的

往小说像采集,小偷站,也需要对HTTP协议有所了解

以及Ajax对HTTP协议有了解之后,学习Ajax是非常容易的

原理:

形象理解http协议动手试试http协议http协议3部分介绍

实战:

PHP+socket编程发送http请求PHP批量发帖HTTP协议防盗链接

优化:

HTTP协议与缓存控制HTTP协议与COOKIE持久链接

什么是协议?

答:计算中的协议与现实中的协议是一样的,一式双份/多份。

双方/多方都遵从共同的一个规范,这个规范就可以称为协议。

计算机之所以能够全世界互通,协议是功不可没的,如果没有协议,计算机各说各话 ,根本谁都听不懂谁的

ftp,http,stmp,pop,tcp/ip协议…

什么是http协议?

客户端----请求---->服务器-----响应---->客户端

HTTP协议的工作流程

0: 原始状态客户端和服务器之间没有关系.

请求建立连接

什么叫连接?连接就是网络上的虚拟电路

沿着连接,返回响应信息

客户端收到响应Html代码解释出图片、文字

断开连接

HTTP请求信息和响应信息的格式

请求:

(1)请求行

(2)请求头信息

(3)请求主体信息(可以没有)

请求行又分3部分

请求方法 请求路径 所用的协议

请求方法:GET POST PUT DELETE TRACE OPTIONS

问:浏览器可以发送HTTP协议,HTTP协议一定要浏览器发送吗?

答:不是,HTTP既然是一种协议,那只要满足这种协议,什么工具都可以发

请求的资源:例如:/0606/01.php

请求所用的协议版本:HTT/2.0(最常用的还是1.1)

头信息

注意:头信息结束后,有个空行,头信息和主体信息(如果有),需要这个空行做区分。 即使没有主体信息,仍需要此空行

另:头信息是非常丰富的,而且丰富的头信息也是我们学习的一个重点

响应行:协议版本 状态码 状态文字

响应头信息

key:value

key:value

contente-length:接下来主体的长度

hello

所用的协议:目前一般还是HTTP/1.1 已经到了HTTP/2.0

POST比GET多了主体信息

头信息里,要标明主体的长度

但服务器仍没有接到信息,因为,POST时,

要告诉服务器:content-type:application/x-www-form-urlencoded

注意:这些请求方法虽然HTTP协议里规定的,但WEB SERVER未必允许或支持这些方法.

HEAD:和GET基本一致,只是返回内容

比如我们只是确认一个内容(比如照片)还正常存在,不需要返回照片的内容,这时用HEAD比较合适,适合用于监视

TRACE:是你用代理上网,比如用代理访问new.163.com,你想看看代理有没有修改你的HTTP请求,可以用TRACE来测试一下,163.com的服务器就会把最后收到的请求返回给你

OPTIONS:是返回服务器可用的请求方法

状态码、状态文字

状态码 是用来反应服务器响应情况的

最常见的如:200 OK,404 NOT FOUND

500 服务器内部错误 问题就严重了

状态文字是用来描述状态码的,便于观察

http响应中的状态码

状态码分系列

状态码定义说明1XX信息接收到请求,继续处理2XX成功操作成功地收到,理解和接收3XX重定向为了完成请求,必须采取进一步措施4XX客户端错误请求的语法有错误或不能完全被满足5XX服务端错误服务器无法完成明显有效的请求

200-服务器成功返回网页

301/2-永久/临时重定向

304Not Modified-未修改

307 重定向中保持原有的请求数据

失败的状态码:

404-请求的网页不存在

503-服务器暂时不可用

500-服务器内部错误

header(‘Location:http://www.baidu.com’);//默认是302重定向(暂时的)

//指定用301(永久)重定向,true参加意指用301信息替换原来的头信息

header(‘Location:http://www.baidu.com’,true,301);

对于一篇新闻,GET请求,重定向无所谓,还能看到原来的内容就行

但如果是POST数据

比如 表单---->05.php,05.php—重定向---->06.php

最新回复(0)