当前位置: 首页 > news >正文

合肥响应式网站建设河北电子网站建设

合肥响应式网站建设,河北电子网站建设,wordpress弹出式表单,门头沟网站建设目录 一、关于Wireshark 1.1、 什么是Wireshark 1.2、下载及安装 二、HTTP介绍 2.1、HTTP请求过程介绍 2.2 、TCP协议基础知识 2.2.1、概念介绍 2.2.2、TCP协议的工作原理 2.2.3、三次握手建立连接 2.3.4、四次挥手断开连接 2.3、Wireshark抓包分析过程 2.3.1、三次握…

目录

一、关于Wireshark

1.1、 什么是Wireshark

1.2、下载及安装

二、HTTP介绍

2.1、HTTP请求过程介绍

2.2 、TCP协议基础知识

2.2.1、概念介绍

2.2.2、TCP协议的工作原理

2.2.3、三次握手建立连接

 2.3.4、四次挥手断开连接

2.3、Wireshark抓包分析过程

2.3.1、三次握手

2.3.2、发送请求

2.3.3、服务器响应

2.3.4、四次挥手


一、关于Wireshark

1.1、 什么是Wireshark

Wireshark(前身 Ethereal)是一个网络包分析工具。该工具主要是用来捕获网络数据包,并自动解析数据包,为用户显示数据包的详细信息,供用户对数据包进行分析。

它可以运行在 Windows 和 Linux 操作系统上。可以使用该工具捕获并分析各类协议数据包,本文将讲解该工具的安装及基本使用方法。

1.2、下载及安装


Kali Linux 系统自带 Wireshark 工具,而 Windows 系统中默认没有安装该工具。因此,本节讲解如何在 Windows 系统中安装 Wireshark 工具。

  1. 打开网址 http://www.wireshark.org,进入 Wireshark 官网,如图所示。

  2. 选择合适的平台进行下载

  3. 一直下一步安装即可,安装完打开Wireshark,如下:

二、HTTP介绍

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于传输超文本信息的协议,它是互联网上应用最为广泛的一种网络协议。了解完整的HTTP请求过程有助于我们更深层次的去分析问题(尤其是网络安全问题),同时也更能清楚为什么现在网站很少再用HTTP了,而改为使用更为安全的HTTPS协议。

2.1、HTTP请求过程介绍

HTTP连接本质就是使用TCP协议建立起的可靠连接进行请求发送与请求响应。HTTP请求过程大致可以分为五个步骤(见上图),每个步骤细节如下:

  1. DNS解析:当客户端(如浏览器)尝试访问一个网站时,它首先会尝试从本地缓存中查找域名对应的IP地址。如果本地缓存中没有找到,客户端会发送DNS查询请求到本地的DNS服务器。
  2.  建立TCP连接:客户端(如浏览器)向服务器发起连接请求,通常使用TCP/IP协议建立一个到服务器的TCP连接。这个过程称为三次握手(Three-way handshake),确保连接的可靠性。
  3. 客户端发送请求:客户端向服务器发送HTTP请求消息。
  4.  服务端响应请求:服务器接收到请求后,会检查请求头和请求体,然后根据请求方法(如GET、POST)和资源路径来决定如何响应。
  5. 释放TCP连接:请求完成后,客户端和服务器可以关闭连接。

2.2 、TCP协议基础知识

2.2.1、概念介绍

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。TCP是互联网核心协议之一,位于OSI模型的传输层,负责在互联网上的计算机之间提供可靠的数据传输服务

2.2.2、TCP协议的工作原理

TCP连接的建立与断开,正常过程至少需要客户端与服务端来回发送7个包(请求)才能完成。其中客户端发送4个(1、3、4、7),服务端发送3个(2,5,6),具体原理参照下图。

传输控制依赖首部包含的6个标志:

  • URG:紧急指针
  • ACK:确认序号是否有效
  • PSH:接收方应尽快将这个报文段交给应用层
  • RST:重建连接
  • SYN:同步序号用来发起一个连接
  • FIN:发送端完成发送任务

2.2.3、三次握手建立连接

TCP建立连接的过程,包括客户端和服务器总共发送3个包,此过程称为三次握手

  • 第一次握手:客户端发送一个带有SYN标志的TCP段,请求与服务器建立连接。

  • 第二次握手:服务器接收到SYN请求后,发送一个带有SYN和ACK标志的TCP段作为响应。

  • 第三次握手:客户端接收到服务器的SYN+ACK响应后,发送一个带有ACK标志的TCP段,完成连接建立。

三次握手完成后便建立了TCP连接,便可进行数据传输,TCP负责将数据分割为多个段(Segment),并按顺序发送。

 2.3.4、四次挥手断开连接

TCP断开连接的过程,包括客户端和服务器总共发送4个包,此过程称为四次挥手

  • 第一次挥手:客户端发送一个带有FIN标志的TCP段,请求断开连接;

  • 第二次挥手:服务器接收到FIN请求后,发送一个带有ACK标志的TCP段作为响应;

  • 第三次挥手:服务器发送一个带有FIN标志的TCP段,请求断开连接;

  • 第四次挥手:客户端接收到服务器的FIN请求后,发送一个带有ACK标志的TCP段,完成连接断开。

2.3、Wireshark抓包分析过程

①打开Wireshark工具,选择以太网

因为此时捕获的是本地网络,所以会有很多信息,先不管

②打开cmd窗口,以此执行 ping www.baidu.com,然后执行curl www.baidu.com

到这里,我们执行的这两条命令,Wireshark也已经捕获到了,

为避免其他无用的数据包影响分析,可在显示过滤器(display filter)输入过滤条件ip.addr== ip.addr==157.0.148.3 (来自ping返回的百度ip),过滤与百度发生交互的数据包:

上半部分是ping命令的数据包,不管,下面的是curl命令的数据包,我们以此来分析TCP连接的三次握手和四次挥手。

2.3.1、三次握手

前三个包完成了三次握手,建立了连接。

  • 第一个包是「第一次握手」:我(192.168.1.52)向百度(157.0.148.3)发送一个 SYN ,表示这是一个「建立连接的请求」;

  • 第二个包是「第二次握手」:百度(157.0.148.3)响应我(192.168.1.52)一个 SYN+ACK ,表示这是一个「接受连接的应答」;

  • 第三个包是「第三次握手」:我(192.168.1.52)向百度(157.0.148.3)发送一个 ACK ,表示这一个「确认请求」。

发送完确认请求后,我开启到百度的单向连接通道,百度收到我的确认请求后,就开启到我这边的单向连接通道,两边通道都开启以后,就可以通信了。

2.3.2、发送请求

第一个HTTP协议包(序号103)执行了HTTP 的GET请求。

客户端向服务器发送HTTP请求消息。请求消息通常包括以下部分:

  • 请求行:包含请求方法(如GET、POST)、请求的资源路径、HTTP版本。

  • 请求头:包含客户端信息、请求参数等,例如User-Agent、Accept、Cookie等。

  • 请求体:对于某些请求方法(如POST),可能包含额外的数据,用于向服务器发送信息。

点开请求行,看里面的三个字段,下图所示:

  • Request Method:请求方法,这里的请求方法是GET;

  • Request URI:请求的URI,没指定默认是/,因为我们只请求了域名www.baidu.com,并没指定要获取的资源,所以是默认的/

  • Request Version:请求的版本,因为用的是HTTP协议,所以这里显示HTTP协议的版本。

再看下面的几个请求头:

  • Host:目标主机;

  • User-Agent:用户代理,也就是浏览器的类型。由于我们没用浏览器,所以这里显示的是命令curl,版本为8.9.1;

  • Accept:浏览器可接受的MIME(Multipurpose Internet Mail Extensions)类型。

    浏览器通常使用 MIME 类型(而不是文件扩展名)来确定如何处理URL,因此 We b服务器在响应头中添加正确的 MIME 类型非常重要。如果配置不正确,浏览器可能会无法解析文件内容,网站将无法正常工作,并且下载的文件也会被错误处理。

2.3.3、服务器响应

第二个HTTP协议包(序号106)执行了HTTP响应。

 

  • 状态行:包含版本和响应状态码、状态信息;

  • 响应头:包含响应的服务器的资源信息,一行一个响应头;

  • 响应空行:用来间隔/区分响应头和响应体;

  • 响应体:服务器响应的内容,通常是一个HTML页面的代码或者给客户端的数据,上图中可以看到本次响应的内容是一个文件数据(File Data)。

点开状态行,可以看到里面有三个字段:

  • Response Version:响应版本,因为使用的是HTTP协议,所以这里显示了HTTP的版本;

  • Status Code:响应状态码,这里的 200 表示请求成功;

  • Response Phrase:响应状态码的提示信息。

最后看下几个响应头:


 

  • Accept-Ranges: 告知客户端资源是否支持范围请求。当前取值bytes表明资源支持范围请求,可以使用Range头进行请求。

  • Cache-Control: 控制缓存行为,包括是否缓存、缓存的有效期、缓存策略等。

  • Connection: 服务器是否需要保持连接。

    keep-alive表示服务器希望在发送响应后不立即关闭连接,而是保持连接状态以供后续请求复用。这种设置可以提高服务器的响应效率,减少TCP连接的建立和断开的开销,特别是在处理大量并发请求的场景下。

  • Content-Length: 响应内容的字节数,本例是2381字节。

  • Content-Type: 响应内容的类型和编码方式,text/html。

  • Date: 指示响应消息生成的时间。

  • Etag: 资源的实体标签(Entity Tag),用于缓存控制和验证。

  • Last-Modified: 资源的最后修改时间

  • Pragma: 历史遗留的HTTP头,它最初用于缓存控制,但现在已不推荐使用。取值no-cache表明不使用缓存。

  • Server: 服务器的名称或版本。

  • Set-Cookie: 用于设置客户端的Cookie

当打开响应体,会发现它的内容是明文的,对于机密通信来说HTTP通信很容易产生信息泄露。另外,以上介绍的整个交互过程中并不验证通信方的身份,第三方可以冒充他人身份参与通信。后续会发图文详解,带你搞清楚HTTPS协议的工作机制。

2.3.4、四次挥手

最后四个包通过四次挥手断开了连接。

  • 第一个包是「第一次挥手」:我(192.168.1.52)向百度(157.0.148.3)发送一个「FIN+ACK」,表示这是一个「释放连接」的请求;

  • 第二个包是「第二次挥手」:百度(157.0.148.3)向我(192.168.1.52)响应一个「ACK」,表示这是一个「确认请求」,我收到后,就会释放我到百度的单向连接;

  • 第三个包是「第三次挥手」:百度(157.0.148.3)向我(192.168.1.52)发送一个「FIN+ACK」,表示这是一个「释放连接」的请求;

  • 第四个包是「第四次挥手」:我(192.168.1.52)向百度(36.155.132.76)响应一个「ACK」,表示这是一个「确认请求」,百度收到后,就会释放到我这边的单向连接。

 双向的连接都释放后,TCP连接就关闭了(对于本例来说就是百度响应结束),此次通信结束。

http://www.yayakq.cn/news/445033/

相关文章:

  • 手机网站域名开头营销计划怎么写
  • 蓝色网站风格百度学术免费查重入口
  • 做暧嗳xo小视频免费网站多渠道营销系统
  • 云南省建设厅官方网站竞价推广培训班哪里有
  • 玉田县网站建设企业信息信用系统
  • 黔南网站建设多少钱宁波建设局网站郑建华
  • 免费建网站平台教大型网站制作平台
  • 农村建设网站桂林市市长
  • 海口网络平台网站开发装修平台加盟
  • 网站建设公司 南京工艺品网站源码
  • 济南自助建站系统学校网站建设及管理制度
  • 用asp做的网站个人怎么免费注册公司流程
  • 磁力搜索引擎不死鸟网站seo怎么填写
  • 站长工具域名查询ip现在收废品做哪个网站好
  • oppo手机网站建设需求分析网站建设费 科目
  • 湖北省建设银行网站6网站 图片水印
  • 怎样用vs2017做网站赣州小程序建设包括哪些服务
  • 建筑八大员证报考网站产品网站设计论文
  • 做网站片头的软件网站首页的动态视频怎么做的
  • 网站后台无法上传附件昆明关键词优化软件
  • 福建网站开发公司电话wordpress标题超链接
  • 网站系统后台设计手机网站页面尺寸
  • 排行网站模板网页界面设计中表单的组成部分有哪四方面
  • 住房和城乡建设部网站质保金公司变更地址需要什么资料
  • 做网站要求什么公司做网站需要备案吗
  • 企石东莞网站建设重庆永川网站建设公司
  • 网站建设后期服务收费标准求推荐公司网站建设
  • 郑州大学网页设计与网站建设wordpress打开wordpress
  • 打电话说帮忙做网站南宁营销型网站
  • 米拓建站教程做天猫网站价格表