网络协议漫游-HTTP | TCPIP | P2P

网络协议漫游-HTTP | TCPIP | P2P,第1张

网络协议漫游-HTTP | TCP/IP | P2P
  • 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首部,首部由多个首部字段构成,每行一个首部字段
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 请求行 第一行(请求方法)
    三部分
    1. POST GET HEAD PUT DELETE TRACE CONNECT OPTIONS
    2. 一个斜杠(/login.aspx)说明请求是 域名根目录哪个文件发出的
    3. 使用 HTTP1.1 或 1.0

  • 第二行–>空白行 请求头 (消息报文/头)
  1. Host 主机地址
  2. User-Agent 浏览器标识(客户端自行设定)

  • (空白行 代表上一个 结束)

  • 请求正文 (可选)常出现在POST请求
# HTTP响应

三部分


  • 相应行
  1. HTTP版本
  2. 状态码
  3. 消息 OK

  • 响应头(消息报头) 服务器---->客户端

  • 空白行 表示响应头结束

  • 相应正文(消息主题) 服务器发给 客户端的 HTML数据

深入浅出-HTTP协议请求方法 HTTP协议请求方法 字段( 告诉服务器要做什么)

状态行—>请求行—>请求方法字段

  不是所有的服务器都会实现这些方法,一般都会实现GET和POST方法。另外,请求方法需要大写。

GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。
POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT: 从客户端向服务器传送的数据取代指定的文档的内容。
DELETE: 请求服务器删除指定的页面。
OPTIONS: 允许客户端查看服务器的性能。
TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。
PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。
MOVE: 请求服务器将指定的页面移至另一个网络地址。
COPY: 请求服务器将指定的页面拷贝至另一个网络地址。
LINK: 请求服务器建立链接关系。
UNLINK: 断开链接关系。
WRAPPED: 允许客户端发送经过封装的请求。
Extension-mothed:在不改动协议的前提下,可增加另外的方法。
—————————————————————————————————————

GET 获取/查询资源 请求页面指定信息(实体)

常用于请求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 请求行 第一行(请求方法)
    三部分
    1. POST GET HEAD PUT DELETE TRACE CONNECT OPTIONS
    2. 一个斜杠(/login.aspx)说明请求是 域名根目录哪个文件发出的
    3. 使用 HTTP1.1 或 1.0

  • 第二行–>空白行 请求头 (消息报文/头)
  1. Host 主机地址
  2. User-Agent 浏览器标识(客户端自行设定)

  • (空白行 代表上一个 结束)

  • 请求正文 (可选)常出现在POST请求
# HTTP响应

三部分


  • 相应行
  1. HTTP版本
  2. 状态码
  3. 消息 OK

  • 响应头(消息报头) 服务器---->客户端

  • 空白行 表示响应头结束

  • 相应正文(消息主题) 服务器发给 客户端的 HTML数据

  • 深入浅出-HTTP协议请求方法
HTTP协议请求方法

GET: 请求指定的页面信息,并返回实体主体。
HEAD: 只请求页面的首部。

POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。

PUT: 从客户端向服务器传送的数据取代指定的文档的内容。

DELETE: 请求服务器删除指定的页面。

OPTIONS: 允许客户端查看服务器的性能。

TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。

PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。

MOVE: 请求服务器将指定的页面移至另一个网络地址。

COPY: 请求服务器将指定的页面拷贝至另一个网络地址。

LINK: 请求服务器建立链接关系。

UNLINK: 断开链接关系。

WRAPPED: 允许客户端发送经过封装的请求。

Extension-mothed:在不改动协议的前提下,可增加另外的方法。
—————————————————————————————————————

GET 获取 请求页面指定信息(实体)
  • 请求资源为 动态资源 (非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 与GET(无请求内容)类似 用于向服务器发送 大量数据 (GET有长度限制 会将发送的数据显示在浏览器端)
  • 安全性高一些
  • 上传文件 提交留言 (向服务器发送大量的数据)

  • 用POST 向sended.asp 发送请求 -----> 传递参数 book_title xxxxxx
PUT 请求服务器把实体存储在请求资源下(存在替换,不存在创建 <-正文)

  • 主机根目录 创建shell.asp 内容一句话
  • 通常情况下 关闭PUT方法 防止危险方法建立文件
DELETE 请求 服务器删除指定资源
  • 危险方法 关闭 删除文件 *** 作
TRACE 激发 远程 应用层请求消息回路 回显服务器收到请求
  • 允许客户端 了解数据 被请求链 的 另一端接收情况
  • 此方法少见
  • 利用数据信息去 测试 诊断
CONNECT
  • HTTP1.1 协议 保留 动态切换隧道代理
OPTIONS 获取 有URI标识 的 资源 在请求/响应过程中的 可用功能选项
  • 客户端 在采取具体资源请求 前 决定对 该资源 采取 何种 必要措施
  • 了解服务器 性能

以上 HTTP1.1 标准方法 ————
WEBDAV --基于HTTP /1.1 通讯协议 拓展
  • 使程序应用 可直接对 web server 读写

  • 支持 写文件锁定 Locking

  • 解锁Unlock

  • 文件复制 Copy

  • 文件移动 Move

  • 支持文件版本控制

  • 深入浅出-HTTP状态码
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详解

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/732348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存