- HTTP协议入水
- 由三部分组成 状态行(请求行 | 响应行)、首部、主体
- 状态行
- 首部
- 主体
- HTTP 无状态协议详解
- HTTP请求与响应
- HTTP请求 三部分
- # HTTP响应
- 深入浅出-HTTP协议请求方法
- HTTP协议请求方法 字段( 告诉服务器要做什么)
- GET 获取/查询资源 请求页面指定信息(实体)
- HTTP 请求流程
- HTTP协议解析
- HTTP 无状态协议详解
- HTTP请求与响应
- HTTP请求 三部分
- # HTTP响应
- 深入浅出-HTTP协议请求方法
- HTTP协议请求方法
- GET 获取 请求页面指定信息(实体)
- HEAD 服务器不能在 响应里 返回 消息主体 其他同GET
- POST 与GET(无请求内容)类似
- 用于向服务器发送 大量数据 (GET有长度限制 会将发送的数据显示在浏览器端)
- PUT 请求服务器把实体存储在请求资源下(存在替换,不存在创建 <-正文)
- DELETE 请求 服务器删除指定资源
- TRACE 激发 远程 应用层请求消息回路 回显服务器收到请求
- CONNECT
- OPTIONS 获取 有URI标识 的 资源 在请求/响应过程中的 可用功能选项 ![在这里插入图片描述](http://www.kaotop.com/file/tupian/20220425/20191111203646514.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw,size_16,color_FFFFFF,t_70)
- 以上 HTTP1.1 标准方法
- ———— WEBDAV --基于HTTP /1.1 通讯协议 拓展
- 深入浅出-HTTP状态码
- HTTP状态码
- P2P( **Peer-to-Peer**)协议网络
- TCP-IP详解
- 概述
客户端 服务器端 通信,通过HTTP协议,
以HTTP报文
的形式来实现数据的交互。
HTTP报文是HTTP通信时发送的数据块
- HTTP报文结构
也有 说是由 首部和主体 两部分 组成,状态行包含在首部中
HTTP报文
分为请求报文
和响应报文
;
请求报文向服务器传达请求
响应报文将请求的结果返回给客户端
HTTP报文以状态行开始,
跟在后面的是HTTP首部,首部由多个首部字段构成,每行一个首部字段
;
HTTP首部后是一个空行,
然后是报文主体。
状态行和首部中的每行
都是以回车符(\r,%0d,CR)
和换行符(\n,%0a,LF)
结束,
这是因为HTTP规范中行应该使用CRLF结束。
另外,首部和主体之间由一空行隔开,
或者可以理解为HTTP首部的最后一个字段有两个CRLF
。
与状态行和首部不同的是,
主体是可选的,也就是说报文中不一定要有主体;
另外状态行和首部是ASCII文本,主体可包含文本
或二进制数据
。
状态行
HTTP报文以状态行开始
请求报文中的状态行叫请求行
,
响应报文中的状态行叫响应行
。
请求行 由
请求方法、URL、协议版本组成,这些字段都由空格
分隔
请求行表明要对哪个资源执行哪个 请求方法
响应行
协议版本、状态码、原因短语(状态码描述)组成。这些字段同样都由空格分隔
响应行表明了服务器对请求的处理结果,由状态码体现。
原因短语是数字状态码的可读版本,描述数字状态码的含义,便于人理解,只对人有意义
HTTP/1.0 200 NOT OK
HTTP/1.0 200 OK
两种响应行都会被当作成功处理
请求行和响应行中都包含HTTP版本号
,其格式为
HTTP/.
major是主版本号,
minor是次版本号,使用版本号的目的是规范双方之间通信的格式
首部
HTTP首部由
多个首部字段构成,旨在向报文中添加一些通信过程中所需的重要信息。
报文主体包含了HTTP所要传输的内容,但并不是所有的报文都有主体。
-
3 请求方法
-
协议://服务器ip:[端口]/路径/[?查询]
-
Linux —>Curl命令 / windows —>curl.exe 请求HTTP
-
命令 curl xxx.com - I HTTP响应头
HTTP 无状态协议详解
web浏览器-web服务器之间不需要建立持久连接
请求 ----->Response(响应)----->关闭
(在服务器端不保留连接有关信息)
- HTTP请求只能由客户端发起
- 服务端不能主动向客户端发送数据
- 遵循 客户端请求(Request)/服务端处理、应答(Response)模型
HTTP请求与响应 HTTP请求 三部分
- HTTP 请求行 第一行(请求方法)
三部分- POST GET HEAD PUT DELETE TRACE CONNECT OPTIONS
- 一个斜杠(/login.aspx)说明请求是 域名根目录哪个文件发出的
- 使用 HTTP1.1 或 1.0
- 第二行–>空白行 请求头 (消息报文/头)
- Host 主机地址
- User-Agent 浏览器标识(客户端自行设定)
- (空白行 代表上一个 结束)
- 请求正文 (可选)常出现在POST请求
三部分
- 相应行
- HTTP版本
- 状态码
- 消息 OK
- 响应头(消息报头) 服务器---->客户端
- 空白行 表示响应头结束
- 相应正文(消息主题) 服务器发给 客户端的 HTML数据
深入浅出-HTTP协议请求方法 HTTP协议请求方法 字段( 告诉服务器要做什么)
状态行—>请求行—>请求方法字段
不是所有的服务器都会实现这些方法,一般都会实现GET和POST方法。另外,请求方法需要大写。
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。
—————————————————————————————————————
常用于请求URL指定的资源,服务端经过处理将资源返回给客户端
- 请求资源为 动态资源 (非HTML) 返回文本 web容器解析 HTML源代码(非源文件)
eg: index,jsp ----返回-----> 解析后的 HTML文件
请求 xxx.jsp xxxxid=xxx9 传递参数
https://mp.weixin.qq.com/s?__biz=MzU2NzY5MjAwNQ==&mid=2247483836&idx=1&sn=1b1ccd6f196c87b7f3bf4b1c585d9d9e&chksm=fc981e36cbef972043707782aaa968ba94a960adba855a35afc5e896edeb2160d513ab1667cf&scene=21
服务端 脚本语言 选择性接收 参数
eg:id=1&name=admin 有开发者内定好 参数 服务器项目才会接收
eg: 设定好只接收 id 参数项目 加入其他参数项
Index.php?id=1&username=admin (多个参数以&分隔)
脚本 不理会 只会接收id 参数----->查询数据 ---->发送HTML数据 (不会乱套)
HTTP 请求流程- B/S架构
用户–>交互----->web请求—>客户端–>web服务器 - 应用层协议—HTTP
HTTP协议解析
HyperText Transfer Protocol 超文本传输协议
(详细规定浏览器与万维网 通信规则)
万维网交换信息基础
HTML(超文本标记语言)文档从web服务器–>客户端–>浏览器
-
发起Http请求
浏览器–>url(统一资源定位符)互联网标准网页地址 ---->返回结果 -
协议://服务器ip:[端口]/路径/[?查询]
-
Linux —>Curl命令 / windows —>curl.exe 请求HTTP
-
命令 curl xxx.com - I HTTP响应头
HTTP 无状态协议详解
web浏览器-web服务器之间不需要建立持久连接
请求 ----->Response(响应)----->关闭
(在服务器端不保留连接有关信息)
- HTTP请求只能由客户端发起
- 服务端不能主动向客户端发送数据
- 遵循 客户端请求(Request)/服务端处理、应答(Response)模型
HTTP请求与响应 HTTP请求 三部分
- HTTP 请求行 第一行(请求方法)
三部分- POST GET HEAD PUT DELETE TRACE CONNECT OPTIONS
- 一个斜杠(/login.aspx)说明请求是 域名根目录哪个文件发出的
- 使用 HTTP1.1 或 1.0
- 第二行–>空白行 请求头 (消息报文/头)
- Host 主机地址
- User-Agent 浏览器标识(客户端自行设定)
- (空白行 代表上一个 结束)
- 请求正文 (可选)常出现在POST请求
三部分
- 相应行
- HTTP版本
- 状态码
- 消息 OK
- 响应头(消息报头) 服务器---->客户端
- 空白行 表示响应头结束
- 相应正文(消息主题) 服务器发给 客户端的 HTML数据
- 深入浅出-HTTP协议请求方法
GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。
—————————————————————————————————————
- 请求资源为 动态资源 (非HTML) 返回文本 web容器解析 HTML源代码(非源文件)
eg: index,jsp ----返回-----> 解析后的 HTML文件
请求 xxx.jsp xxxxid=xxx9
服务端 脚本语言 选择性接收 参数
eg:id=1&name=admin 有开发者内定好 参数 服务器项目才会接收
eg: 设定好只接收 id 参数项目 加入其他参数项
Index.php?id=1&username=admin (多个参数以&分隔)
脚本 不理会 只会接收id 参数----->查询数据 ---->发送HTML数据 (不会乱套)
HEAD 服务器不能在 响应里 返回 消息主体 其他同GET- HEAD 请求常常 被忽略,但是能提供很多有用的信息,
- 特别是在有限的速度和带宽下。主要有以下特点:
1、只请求资源的首部;
这种方法可以用来获取请求中隐含的元信息,而不用传输实体本身。
- HTTP头中包含的元信息应该和一个GET请求的响应消息相同
- 得到Request-URI所标识的资源的信息
2、检查超链接的有效性、可访问性、;
----->编写扫描工具(测试资源是否存在)
3、检查网页是否被修改; 最近改变。
4、多用于自动搜索机器人获取网页的标志信息,获取rss种子信息,或者传递安全认证信息等
- 一个HEAD请求的响应可被缓存,也就是说,
响应中的信息可能用来更新之前缓存的实体。
如果当前实体跟缓存实体的阈值不同
(可通过Content-Length、Content-MD5、ETag或Last-Modified的变化来表明),
那么这个缓存就被视为过期了。
- 安全性高一些
- 上传文件 提交留言 (向服务器发送大量的数据)
- 用POST 向sended.asp 发送请求 -----> 传递参数 book_title xxxxxx
- 主机根目录 创建shell.asp 内容一句话
- 通常情况下 关闭PUT方法 防止危险方法建立文件
- 危险方法 关闭 删除文件 *** 作
- 允许客户端 了解数据 被请求链 的 另一端接收情况
- 此方法少见
- 利用数据信息去 测试 诊断
- HTTP1.1 协议 保留 动态切换隧道代理
- 客户端 在采取具体资源请求 前 决定对 该资源 采取 何种 必要措施
- 了解服务器 性能
以上 HTTP1.1 标准方法 ————
WEBDAV --基于HTTP /1.1 通讯协议 拓展
-
使程序应用 可直接对 web server 读写
-
支持 写文件锁定 Locking
-
解锁Unlock
-
文件复制 Copy
-
文件移动 Move
-
支持文件版本控制
- 深入浅出-HTTP状态码
- 客户端发出HTTP请求—>服务端接收---->向客户端发送响应信息。
- 响应第一行 三维数字状态码
1xx:指示信息–表示请求已接收,继续处理。
2xx:成功–表示请求已被成功接收、理解、接受。
3xx:重定向–要完成请求必须进行更进一步的 *** 作。
4xx:客户端错误–请求有语法错误或请求无法实现。
5xx:服务器端错误–服务器未能实现合法的请求。
常见状态代码、状态描述的说明如下。
200 OK:客户端请求成功。
400 Bad Request:客户端请求有语法错误,不能被服务器所理解。
401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。
403 Forbidden:服务器收到请求,但是拒绝提供服务。
404 Not Found:请求资源不存在,举个例子:输入了错误的URL。
500 Internal Server Error:服务器发生不可预期的错误。
503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。
P2P( Peer-to-Peer)协议网络定义:
1、Peer-to-peer
是一类允许一组用户互相连接并直接从用户硬盘上获取文件的网络。
2、Peer-to-peer网络
是一个运行于个人电脑上的应用,通过网络在用户间分享文件。
P2P网络通过连接个人电脑分享文件而不是通过中央服务器。
3、P2P是一种分布式网络,网络的参与者共享他们所拥有的一部分硬件资源
(处理能力、存储能力、网络连接能力、打印机等),
这些共享资源需要由网络提供服务和内容,能被其它对等节点(peer)直接访问而无需经过中间实体。
在此网络中的参与者既是资源(服务和内容)提供者(server),又是资源(服务和内容)获取者(client)。
TCP-IP详解欢迎分享,转载请注明来源:内存溢出
评论列表(0条)