网络协议漫游-HTTP | TCP/IP | P2P

      最后更新:2022-07-04 08:27:38 手机定位技术交流文章

      网络协议 - HTTP | TCP/IP | P2P

      • HTTP协议入水
        • 它由三个部分组成:状态行(请求行|响应行),标题,主题
        • 状态行
        • 首部
        • 主体
          • HTTP无状态协议细节
            • HTTP请求与响应
              • HTTP请求第三部分
            • # HTTP响应
        • Deep and In-depth - HTTP协议请求方法
          • HTTP协议请求方法字段(告诉服务器该做什么)
        • 获取获取/查询资源请求页面指定信息(实体)
          • HTTP 请求流程
          • HTTP协议解析
          • HTTP无状态协议细节
            • HTTP请求与响应
              • HTTP请求第三部分
            • # HTTP响应
        • Deep and In-depth - HTTP协议请求方法
          • HTTP协议请求方法
        • 获取请求页面指定信息(实体)
        • HEAD服务器不能对其他GETs的响应返回消息主体
        • POST与GET类似(没有请求内容)
        • 发送大量数据到服务器(GET有发送数据到浏览器端的长度限制)
        • PUT 请求服务器把实体存储在请求资源下(存在替换,不存在创建 <-正文)
        • 删除请求服务器删除指定资源
        • TRACE触发远程应用程序层请求消息循环重发服务器接收请求
        • CONNECT
        • 选项 在请求/响应过程中获取具有URI标识的资源的功能选项![在此插入图片描述] (https://img-blog.csdnimg."201911203646514".png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzMzNjA4MDAw,size_16,color_FFFFFF,t_70)
        • HTTP1以上.1标准方法
        • WebDAV基于HTTP/1.1通信协议扩展
        • Deep Deep Out - 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版本号,其格式为

      HTTP/.

      主要是主要版本的编号,
      小号是第二个版本号。使用版本号的目的是规范双方沟通的格式

      首部

      HTTP首部由
      多项标题是为增加报告所需的一些重要信息而编写的。

      主体

      消息主题包含由HTTP发送的内容,但并非所有消息都有主题。

      • 3 请求方法

      • 协议: http://serverip:[port]/path/[?Enquiry

      • Linux —>Curl命令 / windows —>curl.exe 请求HTTP

      • 命令 curl xx.com - I HTTP响应头

      HTTP无状态协议细节

      网页浏览器 - 无需创建网络服务器之间持久的连接
      请求 ----->Response(响应)----->关闭
      (没有在服务器端存储连接信息)

      • HTTP请求只能由客户端发起
      • 服务器不能单独向客户端发送数据
      • 遵循客户请求/服务端处理和响应模型

      HTTP请求与响应

      HTTP请求第三部分

      在这里插入图片描述

      • HTTP请求行1(请求方法)
        三部分
        1. POST GET HEAD PUT DELETE TRACE CONNECT OPTIONS
        2. A bar / login.aspx)解释在域名根目录中发送的文件
        3. 使用HTTP1.1或1.0

      在这里插入图片描述

      • 第二行–>空白行 请求头 (消息报文/头)
      1. Host 主机地址
      2. 用户代理浏览器识别(用户自配置)
      • (空行代表前面的结尾)
      • 原始(可选)请求经常出现在 POST请求中

      # HTTP响应

      三部分
      在这里插入图片描述

      • 相应行
      1. HTTP版本
      2. 状态码
      3. 消息 OK
        在这里插入图片描述
      • 响应头(消息报头) 服务器---->客户端
        在这里插入图片描述
      • 空白行表示响应头的末端
      • 由服务器发送给客户端的相应文本(消息主体)HTML数据
        在这里插入图片描述

      Deep and In-depth - HTTP协议请求方法

      HTTP协议请求方法字段(告诉服务器该做什么)

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

      在这里插入图片描述

      GET: 请求指定的页面信息,并返回实体主体.
      头部: 仅要求页面的第一个部分.
      POST:请求服务器接受指定的文件作为识别URI的新子实体。
      PUT:从客户端发送到服务器的数据替换指定文档的内容。
      删除:要求服务器删除指定的页面。
      选项:允许客户端查看服务器性能。
      路径:请求服务器返回响应中实体体部分的内容。
      PATCH:实体包含一个表,说明URI的原始内容之间的差异。
      移动:请求服务器将指定的页面移动到另一个网络地址。
      复制:请求服务器将复制指定的页面到另一个网络地址。
      链接:要求服务器建立一个链接关系。
      UNLINK: 切断链接.
      编写:允许客户端发送已加密的请求。
      Extension-mothed:可以添加额外的方法而不更改协议。
      —————————————————————————————————————

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

      通常用于请求URL定义资源,服务端在处理后将资源返回到客户端。

      在这里插入图片描述

      • 请求资源是动态资源(非HTML)返回文本网页容器分析HTML源代码(非源文件)
        eg: index,jsp ----返回-----> 解析后的 HTML文件

      在这里插入图片描述
      请求xx.jsp xxid=xx9传输参数

      服务端脚本语言选择接收参数
      eg:id=1&name=admin 有开发者内定好 参数 服务器项目才会接收
      设置只接收ID参数项,添加其他参数项
      Index.php?id=1&username=admin (多个参数以&分隔)

      脚本 不理会 只会接收id 参数----->查询数据 ---->发送HTML数据 (不会乱套)

      HTTP 请求流程

      • B/S架构
        用户–>交互----->web请求—>客户端–>web服务器
      • 应用程序层协议-HTTP

      HTTP协议解析

      高文本传输协议
      (浏览器与世界网的通讯的详细规则)
      万维网交换信息基础
      HTML(超文本标记语言)文档从web服务器–>客户端–>浏览器

      • 发起Http请求
        浏览器–>url(统一资源定位符)互联网标准网页地址 ---->返回结果

      • 协议: http://serverip:[port]/path/[?Enquiry

      • Linux —>Curl命令 / windows —>curl.exe 请求HTTP

      • 命令 curl xx.com - I HTTP响应头

      HTTP无状态协议细节

      网页浏览器 - 无需创建网络服务器之间持久的连接
      请求 ----->Response(响应)----->关闭
      (没有在服务器端存储连接信息)

      • HTTP请求只能由客户端发起
      • 服务器不能单独向客户端发送数据
      • 遵循客户请求/服务端处理和响应模型

      HTTP请求与响应

      HTTP请求第三部分

      在这里插入图片描述

      • HTTP请求行1(请求方法)
        三部分
        1. POST GET HEAD PUT DELETE TRACE CONNECT OPTIONS
        2. A bar / login.aspx)解释在域名根目录中发送的文件
        3. 使用HTTP1.1或1.0

      在这里插入图片描述

      • 第二行–>空白行 请求头 (消息报文/头)
      1. Host 主机地址
      2. 用户代理浏览器识别(用户自配置)
      • (空行代表前面的结尾)
      • 原始(可选)请求经常出现在 POST请求中

      # HTTP响应

      三部分
      在这里插入图片描述

      • 相应行
      1. HTTP版本
      2. 状态码
      3. 消息 OK
        在这里插入图片描述
      • 响应头(消息报头) 服务器---->客户端
        在这里插入图片描述
      • 空白行表示响应头的末端
      • 由服务器发送给客户端的相应文本(消息主体)HTML数据
        在这里插入图片描述
      • Deep and In-depth - HTTP协议请求方法

      HTTP协议请求方法

      在这里插入图片描述

      GET: 请求指定的页面信息,并返回实体主体.
      头部: 仅要求页面的第一个部分.

      POST:请求服务器接受指定的文件作为识别URI的新子实体。

      PUT:从客户端发送到服务器的数据替换指定文档的内容。

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

      选项:允许客户端查看服务器性能。

      路径:请求服务器返回响应中实体体部分的内容。

      PATCH:实体包含一个表,说明URI的原始内容之间的差异。

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

      复制:请求服务器将复制指定的页面到另一个网络地址。

      链接:要求服务器建立一个链接关系。

      UNLINK: 切断链接.

      编写:允许客户端发送已加密的请求。

      Extension-mothed:可以添加额外的方法而不更改协议。

      在这里插入图片描述

      获取请求页面指定信息(实体)

      • 请求资源是动态资源(非HTML)返回文本网页容器分析HTML源代码(非源文件)
        eg: index,jsp ----返回-----> 解析后的 HTML文件

      在这里插入图片描述
      请求 xx.jsp xxid=xx9
      服务端脚本语言选择接收参数
      eg:id=1&name=admin 有开发者内定好 参数 服务器项目才会接收
      设置只接收ID参数项,添加其他参数项
      Index.php?id=1&username=admin (多个参数以&分隔)

      脚本 不理会 只会接收id 参数----->查询数据 ---->发送HTML数据 (不会乱套)

      HEAD服务器不能对其他GETs的响应返回消息主体

      • HEAD请求经常被忽略,但可以提供很多有用的信息,
      • 其主要特点是:

      1, 只 要求 资源 的 总部 ;
      该方法可以用于获取请求中隐含的元素信息,而不是发送实体本身。

      • HTTP头条中包含的元素信息应与GET请求的响应消息相同
      • 获取请求URI查明的资源的信息

      检查超链接的有效性和易于访问性;
      ----->编写扫描工具(测试资源是否存在)

      检查网页是否已修改;最近的更改。

      4.通常用于自动搜索机器人获取网页的标志信息,获取RSS种子信息,或通过安全认证信息等。

      • 一个HEAD请求响应可以缓存,即:
        响应中的信息可以用于更新先前缓存的实体。
        如果当前实体与缓存实体的阈值不同
        (由内容长度、内容MD5、ETag或最后修改中的更改表示),
        因此,这个缓存被认为是过时的。

      POST与GET类似(没有请求内容)

      发送大量数据到服务器(GET有发送数据到浏览器端的长度限制)

      • 安全性高一些
      • 上传文件发送消息(向服务器发送大量数据)

      在这里插入图片描述

      • 用POST 向sended.asp 发送请求 -----> 传递参数 book_title xxxxxx

      PUT 请求服务器把实体存储在请求资源下(存在替换,不存在创建 <-正文)

      在这里插入图片描述

      • 主机根目录创建一个shell.asp内容词
      • 通常是PUT方法关闭方法防止危险方法创建文件

      删除请求服务器删除指定资源

      • 危险方法关闭文件删除操作

      TRACE触发远程应用程序层请求消息循环重发服务器接收请求

      • 允许客户端了解请求数据链的另一端接收状态
      • 此方法少见
      • 使用数据信息测试诊断

      CONNECT

      • HTTP1.Protocol1保持动态交换隧道代理

      在请求/响应过程中获取具有URI标识符资源的可用功能选项在这里插入图片描述

      • 在提出特定资源请求之前,客户决定该资源需要采取哪些措施
      • 了解服务器 性能
        在这里插入图片描述

      HTTP1以上.1标准方法

      ————
      WebDAV-基于HTTP/1.1通信协议扩展

      • 让应用程序直接读写到Web服务器上

      • 支持写文件锁定锁定

      • 解锁Unlock

      • 文件复制 Copy

      • 文件移动 Move

      • 支持文件版本控制

      • Deep Deep Out - HTTP状态代码

      HTTP状态码

      • 客户端发出HTTP请求—>服务端接收---->向客户端发送响应信息。
      • 对第一行三维数字状态代码的响应
        在这里插入图片描述

      错误码:

      HTTP消息

      1xx:指示信息
      - 请求得到处理.

      消息: 描述:
      100继续服务器只接收部分请求,但一旦服务器没有拒绝请求,客户端应该继续发送剩余请求。
      101调用协议服务器转换协议:服务器将按照客户端的要求转换到另一个协议。

      2xx:成功
      请求已获得成功, 得到理解和接受.

      消息: 描述:
      200 OK请求成功(之后为GET和 POST请求的响应文件)。
      201创建请求被创建并完成,而一个新的资源被创建。
      202接受的处理请求已接受,但处理尚未完成。
      203 非作者信息文档正常返回,但有些标题可能不正确,因为它们是文档的副本。
      没有内容没有新文件。 浏览器应该继续显示原始文件。 如果用户定期更新页面,并且Servlet可以确定用户文件已经足够新,这个状态代码是有用的。
      205 重新设置内容没有新文件,但浏览器应该重新装载它显示的内容,以迫使浏览器清除表格输入的内容。
      206 部分内容 客户端用 Range 头发送了一个 GET 请求,服务器完成它。

      3xx:重定向
      –需要进行进一步的操作才能完成请求。

      消息: 描述:
      300多个选择.链接列表.用户可以选择一个链接到达目的地.最多允许5个地址。
      301被永久移动请求的页面被移动到一个新的url。
      302 找到请求的页面暂时转移到一个新的url。
      303 查看其他请求的页面可以在另一个url下找到。
      304未修改文件没有如预期的修改。客户端有一个缓冲文件,并发送一个条件请求(通常使用“如果-修改-自”项表示客户端只希望文件在指定日期更新)。服务器告诉客户,原先缓冲文件仍可使用。
      305使用代理客户端请求应该从位于标题中指定的代理服务器中提取。
      306未使用这个代码在以前的版本中使用,不再使用,但代码仍然保留。
      307临时转址请求的页面被临时转址到一个新的url。

      4xx:客户端错误
      -请求有语法错误或请求无法执行。

      消息: 描述:
      400 错误请求服务器无法理解请求。
      401 未经授权请求的页面需要用户名和密码。
      402 必须支付此代码尚未可用。
      403禁止访问请求的页面是禁止的。
      服务器无法找到请求的页面。
      405方法不允许请求中指定的方法不允许。
      406不能接受服务器生成的响应不能被客户端接受。
      407代理身份验证需要的用户必须首先使用代理服务器进行验证,才能处理请求。
      408请求终止时间请求超过服务器的等待时间。
      409 冲突请求由于冲突无法完成.
      请求的页面没有使用。
      411 需要的长度“内容长度”没有定义,否则服务器不会接受请求。
      412先决条件失败请求中的先决条件被服务器评估为失败。
      413请求实体太大 requested entity is too large server will not accept the request. 请求实体太大 server will not accept the request.
      414请求url太长因为url太长,服务器不会接受请求。
      415 不支持媒体类型由于媒体类型不支持,服务器不会接受请求。
      416服务器不能满足客户端在请求中指定的范围头。
      417 Expectation Failed

      5xx:服务器终止错误
      –服务器未能执行合法请求。

      消息: 描述:
      500内部服务器错误请求未完成。服务器遇到了一个不可预知的情况。
      501未实现请求未完成。服务器不支持请求的功能。
      502 Bad Gateway请求未完成。服务器收到上服务器的无效响应。
      503服务未提供请求未完成。服务器暂时过载或处于待机状态。
      "504 Gateway Timeout".
      505HTTP版本不支持服务器不支持请求中指定的HTTP协议版本。

      普通州代码,州描述说明

      200 好: 客户请求成功.

      400 错误请求: 客户端请求有一个语法错误,不能由服务器理解.

      401未经授权:请求未经授权,此状态代码必须与WW-Authenticate头字域使用。

      403禁止:服务器收到请求,但拒绝提供服务。

      404 未找到: 请求资源不存在, 例如, 输入了一个错误的URL.

      500 内部服务器错误: 在服务器上发生了意外的错误。

      503服务器无法使用:服务器目前无法处理客户端请求,可能在一段时间后恢复正常,例如HTTP/1.1 200 OK(CRLF)。

      Peer-to-Peer协议网络

      定义:

      1、Peer-to-peer

      一个允许一群用户相互连接并直接从用户硬盘访问文件的网络。

      人际网络

      在个人电脑上运行的应用程序,通过网络共享用户之间的文件。

      P2P网络通过连接个人电脑而不是通过中央服务器共享文件。

      P2P是一个分布式网络,参与者共享他们拥有的一些硬件资源

      (处理能力、存储能力、网络连接能力、打印机等),

      这些共享资源要求网络提供服务和内容,可以直接由其他同类节点访问,不需要中间体。

      这个网络的参与者是资源(服务和内容)提供者(服务器)和资源(服务和内容)接收者(客户端)。

      TCP-IP详解

      在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/29168.html

          热门文章

          文章分类