HTTP 协议[网络通信编程]和网络抓取套件

      最后更新:2021-11-09 08:37:04 手机定位技术交流文章

      一、HTTP协议

      一,什么是HTTP? (HTTP: HTTP: HTTP: HTTP: HTTP: HTTP: HTTP: HTTP: HTTP: HTTP) 具体是什么?

      HTTP协议是根据超文本传输协议提出的申请,这是一个应用程序级协议,包括请求和答复、一个标准的客户服务器结构、在线联网的基础,以及经常用于移动电话通信的一项协议。
      HTTP连接最引人注目的方面是,客户的每一项请求都需要服务器回应,在请求完成后,自发释放连接。从连接设置到连接关闭的过程被称为“一个连接”。

      2. HTTP协议如何利用TCP连接

      电话/人员是TCP/HTTP互动的模拟,先是连接,然后是通信媒介。

      三. HTTP 请求结构

      (1) HTTP请求提交格式

      这里写图片描述

      (2) 广泛叙述人道主义工作队的请求

      这里写图片描述

      • 请求行:它由三个组成部分组成,按空格分隔:请求机制、 URL(见注1) 和协议版本。
      • 最常见的HTTP方法是GET和POST方法,然后是DELETE、HEADE、OVE、PUT和TRACE。
      • 它使用信头的主机属性来完成请求 URL 的 URL 。
      • HTTP/ 主版号。 Subversion number, 常用于 HTTP/ 1. 0 和 HTTP/ 1. 1 。 One 。
      • 请求页眉, 该页眉包含“ 属性: 属性值” 类型中收集客户端信息的许多特性 。 请求将用空白行终止, 空白行将显示请求将被关闭, 然后在主体中请求 。
      • 请求正文,可选部分,比如GET请求就没有请求正文。它将一个页面表单中的组件值通过param1=value1&param2=value2的键值对形式编码成一个格式化串,它承载多个请求参数的数据。

      这里写图片描述

      (3) 生活例子
      差不多中午了 张三芬不想去食堂 所以他给外卖打电话 老板 我要一份[鱼香 的复制品 12: 30前给我
      您想要 HTTP 媒体, 与 HTTP 报告相同, 12: 30前您称之为“ 张三芬 ” 的信息。 这些是辅助细节, 可以帮助您和酒店老板关闭购买 。

      四. HTTP应对结构

      (1) HTTP答复的报告格式

      这里写图片描述

      (2) HTTP响应实例

      这里写图片描述

      状态线:三部分:协议版本、状态代码和状态代码描述 状态代码:3位数,200成绩代码299即300表明了成功。状态代码399表示资源重新定向,400。状态代码 499 表示客户请求有错误,而500 表示服务器响应有错误。状态代码599表示服务端发生错误(HTTP/1)(HTTP/1)。

      这里写图片描述

      在大多数情况下,对头部的答复如下:

      这里写图片描述

      五. HTTP的任职和任职的区别

      (1) GET-从指定的服务器中获取数据。使用GET方法时,查询字符串(键值对)被附加在URL地址后面一起发送到服务器:/test/demo_form.jsp?name1=value1&name2=value2,特点:

      • Get请求大多用于获取数据。
      • 实施 " 获得机会 " 方案的效率要高一些。
      • 就提交数据而言,GET请求以最多1024字节为限。
      • Get 请求可以缓存并保存为浏览器浏览记录, 请求的 URL 可以保存为浏览器书签 。

      (2) POST - 向特定服务器提交数据。在使用 POST 方法时,查询字符串在 POST 信息中独立出现,并连同HTTP 请求一起传送到服务器,具有以下特性:

      • POST要求通常用于将数据发送到特定的服务器。
      • 效率低下的POPST实施;
      • POST要求没有长度限制。
      • POST更加安全;
      • POST 请求无法缓存, 也无法保存在浏览器浏览历史中, 也无法将请求的 URL 保存为浏览器书签 。

      HTTP1. 零和零的差别

      在HTTP1.第0版中,默认是“短连接”(当Web处于出生的早期阶段时,网页相对简单,“短连接”没有问题);到1995年底,HTTP1已经开发。 在起草草案时,网页开始变得更加复杂,当时使用短链接的效率太低,因此在HTTP1.第1版中,默认是“保持-动态”方法,即“长连接”。 请求中增加了这一行代码:连接:保持-传递,“长连接”;TCP连接在发送后将保持开放,以便浏览器能够继续通过同一连接发送请求。 保持连接节省了为每项请求建立新的连接和网络带宽所需的时间。

      7. HTTP2.0 与 1. 1 相区别。

      HTTP2. 0 中的新的二进制层将 HTTP 信息分隔为非独立框架,按随机顺序发送,然后按每个包重新组合,然后按每个包在另一端重新组合,结果对连接和相当速度的改进提出了许多要求和反应:

      这里写图片描述

      (1) 连接可同时发出若干请求和答复。
      (2) 同时转递请求和答复,对请求和答复一视同仁;
      (3) 消除不必要的延误,从而加快网站的负荷时间。

      二、TCP协议

      1.TCP是什么?

      TCP是Transer Control Protocol的缩略语,** 它是一个连接的、可靠的、以字节为基础的运输层通信协议。** TCP 协议发送一个顺序和顺畅的数据流。要根据TCP协议进行通信,必须在发件人和收件人的两对插座之间建立连接,当一个套接字(通常是服务器套接字)等待连接时,另一个套接字可以要求连接,一旦两个套接字连接,它们可以双向传输数据,两者都可以发送或接收操作。
      先看看OSI的七层模型:

      这里写图片描述

      这里写图片描述

      OSI-7模型中每一层的作用及其附属规程如下:

      这里写图片描述

      更深入的概况要求熟悉和熟悉TCP协议的数据结构以及每个领域的重要性:

      这里写图片描述

      • 来源港口和定居港:每个港口占有16个职位,标明源港口和目的地港口号;IP地址用于区分不同的东道方程序,而源港口和目的地港口号结合了知识产权第一部分的IP和目的地IP地址,只确定一个TCP连接;

      • (a) 必要编号:用于确定从TCP发端人向TCP接收器传输的数据字节流,表明报告领域数据流中第一批数据字节的数量;主要用于解决网络传讯问题。

      • 确认编号:32位确认序列号载有发送确认书结束时预计将收到的下一个序列号,因此,确认序列号应为先前成功的数据字节号加1.然而,只有在标志(下文解释)中的ACK符号为1时,才能接受序列号字段确认。

      • 偏移: 表示第一节中32位字数, 这是必需的, 因为可选字段的长度不同。 此字段包含 4位字数( 最多为 15 32 位字数, 即 4*15 = 60 字节中的第一个字数), 所以 TCP 最多为 60 字节 。 但是, 没有可选字段, 正常长度为 20 字节 ;

      • TCP旗帜:TCP的初始部分有六个标记,其中几个标记可以同时设定,主要用于TCP国家机器的运作,转而用于URG、ACK、PSH、RST、SYN、FIN。

        URG:这个标志表示TCP包件的紧急指针场(即将讨论)的有效性,它确保TCP连接不中断,并敦促中级设备尽快处理数据。

        • ACK:这一符号表示响应区域正确,即上述TCP响应编号将包括在TCP数据包中;两个值:0和1,表示响应区域对1和0有效;
        • PSH: 这个符号代表推力操作。 推力操作显示, 软件包一到达接收端, 就会立即发送到应用程序, 而不是排队到缓冲区 。
        • RST: 此符号表示连接重新定位请求, 也用于拒绝不正确和不合法的数据集 。
        • ** SY**N: 表示用于形成连接的同步序列号。 当请求连接时, SYN=1, ACK=0与ACK标记一起使用SYN=1, ACK=0; 当连接响应时, SYN=1, ACK=1; 这个标记的数据集经常用于港口扫描。 Scanners 发送数据包时只使用SYN, 如果其他主机对数据包作出反应, 它表示主机发送数据包时只使用SYN, 如果其他主机对数据包作出反应, 它表示主机与ACK标记一起使用, SYN=1, ACK=0; 当连接响应时, SYN=1, ACK=1; 这个标记的数据集经常用于港口扫描。
        • FIN:表示发送者已完成数据,即发送带有FIN标志的TCP数据包时,由于双方已完成数据传输,连接将被切断,带有这一标志的数据集也广泛用于港口扫描。
      • Windows: 窗口的大小, 称为幻灯片窗口, 用于流动管理; 这是一个困难的主题, 此工作不会覆盖 。

      2.应用

      当网络通信必须是高质量的时,例如,当所有数据都准确传递给另一方时,这被广泛用于一些需要可靠性的应用,如HTTP、HTTP、FTP、POP、SMTP等。在日常生活中,通常使用以下应用程序:浏览器、HTPPLashFXP、FTPOutook、OP、SMTPPutty、Telnet、SSHQ文件传输。

      三次握手是什么?

      在TCP/IP协议中,TCP协议提供了可靠的连接服务,通过三次握手启动,这三次握手是为了同步序列号和确认号,并传递TCP窗口大小信息。
      (1) 初步握手:客户端设置 SYN 到 1 的标志位置,生成随机值后续值=x,并将数据包传送到服务器,进入 SYN_SENT 状态,同时等待服务器确认。
      (2) 第二握手:当服务器收到数据包时,符号SYN=1确认客户要求连接;服务器将符号SYN和ACK设为1,ack(数目)=x+1,产生随机值后继值,并将数据包传送到Clit,以确认连接请求;服务器进入SYN_RCVD状态。
      (3) 第三握手:在收到确认后,客户端检查,以确定ACK是否传输了后继+1,即客户x+1;如果正确,则将标志ACK指定为1,ack=y+1,并将数据包发送到服务器。服务器核查后继+1,即y+1是否提供给服务器,如果它有效,连接是成功创建的,客户端和服务器都进入已建立状态,以完成三次握手。

      这里写图片描述

      四,你能解释为什么你握手三次吗?

      发生错误是为了防止连接请求信件失败, 无法返回到服务端 。
      具体地说,客户的第一个链接请求没有丢失,而是在网络节点停留了很长时间,推迟了在连接发布后一段时间才到达服务器,这是报告中一个长期失效的部分。 然而,服务器在收到无效的链接请求后,错误地认为是客户再次发出的新的连接请求,随后又向客户发出一封确认信,同意建立连接。 假设不使用“三手握”办法,一旦服务器发出确认书,将立即建立新的连接。 由于客户现在没有发出建立连接的请求,它将不理会服务器的确认书,也不会将数据发送到服务器。 然而,服务器认为新的运输连接书已经建立,并且一直在等待clit提供的数据。 因此,服务器的许多资源被浪费了。 使用“三手握”办法可以防止这些现象的发生。 例如,客户不会向Cerver确认书发送确认书,而Cerver在未确认书中知道客户没有请求建立连接。

      5.四次分手?

      当数据传输完成,客户端和服务器通过三次握手建立了 TCP 连接时, TCP 连接一定是断开的。 在 TCP 连接中发生了奇特的“ 四起分手 ” 。
      (1) 最初,客户设置后继=x,向服务发送FIN信息;此时,主机1进入FIN_WAIT_1状态,表明客户没有数据可以提交服务。
      (2) 第二次分手:从客户处收到FIN=1,答复ACK=1,并收到Cack=后1+1=x+1,然后进入FIN_WAIT_2国家;客户通知客户,它正在等待关闭连接。
      (3) 第三次中断:服务发送FIN=1,为客户指定一个序列号,要求终止连接,服务供应商进入LAST_ACK。
      (4) 第四次中断:客户从服务中获得FIN,发送 ACK=1,ack=seg+1 =seg =y+1 收到,然后主机-1 进入 Time_WAIT 状态;客户从客户收到 ACK 信息后关闭连接;在此点,客户等待 2MSL 并没有收到客户回复, 证明服务器端正常, 客户终止连接 。

      这里写图片描述

      第六,为什么你分开了四次?

      当客户传输 FIN 信息时, 它表示客户没有数据可以发送并通知其所有数据已经发送的服务, 客户也可以接受服务中的数据。 当服务器返回 ACK 报告期间时, 它显示服务器知道客户没有数据可以发送, 但服务器仍然可以向客户发送数据 。
      如果要正确理解对四个分裂解体的解释,就必须理解四个分裂解体状况的下列变化:
      (1) FIN_WAIT_1: 表示 FIN 信息正在等待客户端 。 当 Socket 处于设定状态时, 客户希望自动取消连接, 将 FIN 信息发送给服务, 而 Socket 进入 FIN_ WAIT_ 1 状态 。 (客户)
      (2) CLOSE_WAIT:表示服务器正在等待客户端关闭连接。当客户端关闭 Socket 并发送 FIN 信息到服务器时,服务器会用 ACK 信息回复客户端,而Socket 进入 CLOSE_WAIT 状态。 (服务结束)
      (3) FIN_WAIT_2:服务供应商对ACK呈件作出答复后,Socket进入了FIN_WAIT_2状态,表示半连接,即服务所有人要求密切连接,我还通知客户,目前我还有数据(ACK信息)供你暂时使用,以后将关闭连接。 (客户)
      (4) LAST_ACK:发出FIN信息后,服务将等待客户的ACK信息。 (服务结束)
      (5)Time_WAIT:从另一方的FIN收到了一条电文,并转发给ACK, 该状态在2MSL后被退回封闭。如果从另一方收到电文,在FIN_WAIT1下有FIN和ACK标记,它可以在不经过FIN_WAIT2.(客户)的情况下进入Time_WAIT。
      (6) CLOSED: 表示连接中断。 服务供应商收到 ACK 消息后, Socket 状态更改为 CLOSED 。 (服务结束)
      为什么你要握住它三次 把它打碎四次?

      三. 用于包装的无线卫星工具

      维利沙克包装界面是一个界面 。

      首先在设置–>网络–>状态里面找到自己电脑当前的网络连接状态

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Dimcw9Be-1636371124415)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108110739662.png)]

      因为我和无线网络连线 我双击WLAN

      在这里插入图片描述
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DKl3YAar-1636371124419)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108111113426.png)]

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XgDNgBQR-1636371124421)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108143348287.png)]

      说明:数据包列表区中不同的协议使用了不同的颜色区分。协议颜色标识定位在菜单栏视图 --> 着色规则。如下所示

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-le6p3imZ-1636371124424)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108143520096.png)]

      这些是WireShark被分离成的界面。

      1. 显示过滤器用于配置软件包列表过滤器的筛选条件。

      [在外国链图象传送失败后,建议保留照片供直接上传(img-Ek4egdc0-1636637114426)(C: UsersAppDataRoaming Typoratopora-user-imagesimage-201108143824121)。 [Png, png, png, png, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng, peng.

      2, Packet List Ponee( 数据包列表) 显示所收集的数据包, 每个数据包包含数字、 时间拦截、 源和目标地址、 协议、 长度和数据包元数据。 使用几种颜色差异来显示各种协议的数据包 。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1yOjhp57-1636371124428)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108143921772.png)]

      3. 包装细节板从数据包列表中选择给定的数据包,并在数据包细节中显示数据包的所有细节,数据包详细信息面板最为重要,用于检查协议中的每个领域。
      (1) 框架:物理层框架大纲

      (2) 以太网二:以太网关于数据链层的信息

      (3) 因特网协议版本4:因特网层IPIP软件包头信息

      (4) 发射控制议定书:该议定书用于传输图层T数据段头信息。

      (5) 超文本传输议定书:关于应用层的更多信息,见HTTP议定书。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fN4V9cTu-1636371124431)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108144125995.png)]

      二. TCP一揽子方案的具体内容

      下图描绘了铁沙获得的TCP袋中的每个字段。

      在这里插入图片描述

      三次通过铁沙抓包分析 TCP握手。

      (1) 建立TCP三手握关系的程序。

      步骤 1: 客户端通过向服务器发送 SYN=1, ACK=0 数据包, 启动初始握手 。

      第2步:如果服务提供商收到请求并批准连接,则向发送者发送SYN=1、ACK=1数据包,表明通信是可能的,客户发送确认的数据包,这是第二次握手。

      步骤 3 : 服务器向客户端发送 SYN=0 和 ACK=1 数据包, 确认连接, 这是第三次握手 。 TCP 连接已建立, 通信开始 。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xmkA4sYF-1636371124433)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108150552647.png)]

      (2) 窃取特定服务器数据包的窃听器
      第一步:开始窃听,打开浏览器到ww.un.org。我不知道你在说什么,huawaei。它很好。来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,来吧,

      步骤2:使用ww.un.org,获取IP地址。我不知道你在说什么,huawaei.com。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RNYmsjfU-1636371124436)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108150724186.png)]

      步骤 3: 输入过滤标准, 以接收用于分析 = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WxqS8geD-1636371124438)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108153638792.png)]

      第一次握手数据包

      客户端发送了标有SYN(序号0)的TCP, 代表客户端寻找连接。 图1显示了一个例子。

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RgJXa2LK-1636371124439)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108192557905.png)]

      数据包的主要特征如下:

      SYN: 连接请求标记

      Seq = 0: 初始连接值为 0, 数据包的相对序列号以 0 开始, 表明目前没有传输数据 。

      Ack = 0:收到的最初连接值为0的包件数量,表明目前尚未收到任何数据。
      第二次握手的数据包

      服务器将标签为 SYN 、 ACK 的确认包发回确认包。 设定 = N+ 1, 即作为客户, 输入确认序列号( 识别号) 0+1=1如下:
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PnMwYvI6-1636371124440)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108192755578.png)]

      数据包的主要特征如下:

      Seq = 0:初始值为零,表示没有传输数据。

      虽然客户没有提交任何可接受的数据,但确认符号适用于一个用户,因为它包括SYN或FIN标记。ACK=1:显示在目前末尾成功收到的数据数量。 (这对合法数据的计算没有影响,因为包括SYN或FIN标记的软件包不含有效数据。 )

      第三次握手的数据包

      客户端将确认软件包(ACK) SYN 符号在 0 和 ACK 符号在 1 发送,并将服务器序列号字段+1 发送到 ACK 上,并在确认的字段中相互发送。
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gfqu9AuX-1636371124442)(C:Users徐然AppDataRoamingTyporatypora-user-imagesimage-20211108192902546.png)]

      数据包的主要特征如下:

      ACK:这是一个标记,显示记录已经收到。

      Seq = 1:表示只交付了一份数据。

      Ack = 1: 指定在目前末尾成功接收的数据包数量,尽管服务器没有提供合法数据,但确认标记被附加到一个标记上,因为它包括SYN或FIN标记(这些标记不影响有效数据的计算,因为含有SYN或FIN标记的包并不包含有效数据)。

      结果,TCP协议被三次用于握手和建立联系。

      四、参考文献

      一. 使用网络分析工具——WireShark(详细)

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

          热门文章

          文章分类