【网络安全 | 网络协议应用层】结合Wireshark讲解HTTP协议

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介: 【网络安全 | 网络协议应用层】结合Wireshark讲解HTTP协议

前言

超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。


HTTP协议在Wireshark数据包中是如何体现的?在此之前,先熟悉HTTP协议。

HTTP协议

在 HTTP 协议中,客户端发送请求包到服务器,服务器接收请求并返回响应包给客户端。流程如下:

1.客户端发起请求:

  • 客户端构建一个 HTTP 请求包,包括请求行、请求头和请求主体。
  • 请求行包含请求方法(GET、POST、PUT等)、请求的 URI(Uniform Resource Identifier)以及协议版本。
  • 请求头包含关于请求的附加信息,例如 Host、User-Agent、Content-Type 等。
  • 如果有请求主体,比如在 POST 请求中传递表单数据,它会被包含在请求主体中。

2.服务器接收请求:

  • 服务器接收到客户端发送的请求包。
  • 服务器解析请求行,确定请求的方法、URI 和协议版本。
  • 服务器解析请求头,获取关于请求的附加信息。

3.服务器处理请求:

  • 服务器根据请求的方法和 URI,执行相应的操作,例如获取资源、处理表单数据等。
  • 服务器生成响应内容,包括响应状态行、响应头和响应主体。

4.服务器发送响应:

  • 服务器构建一个 HTTP 响应包,包括响应状态行、响应头和响应主体。
  • 响应状态行包含响应的状态码(例如 200 表示成功,404 表示未找到等)和状态描述。
  • 响应头包含关于响应的附加信息,例如 Content-Type、Content-Length 等。
  • 响应主体包含实际的响应内容,例如 HTML 页面、JSON 数据等。

5.客户端接收响应:

  • 客户端接收到服务器发送的响应包。
  • 客户端解析响应状态行,获取响应的状态码和状态描述。
  • 客户端解析响应头,获取关于响应的附加信息。
  • 如果有响应主体,客户端会读取响应主体中的数据。

6.客户端处理响应:

  • 客户端根据响应的状态码和状态描述,决定如何处理响应结果。
  • 客户端可以解析响应主体中的数据,根据需要进行显示、处理或其他操作。

Wireshark抓包分析

访问百度,触发HTTP协议:

ping命令得到ip后,用ip.addr过滤数据包:

三次握手的流程本文不再赘述,在这篇文章有详析介绍:【网络安全 | 网络协议】结合Wireshark讲解TCP三次握手

重点观察中间红框内的三个包

第一个包的内容:

讲解:

请求包包括请求行(包含请求方法、请求URL、HTTP版本)、请求头(包含请求的客户端的信息)、请求体(POST等类型的请求含有请求体)。

第一个包为请求包,我们先看请求行:

  • REQUEST METHOD:HEAD 表示请求方法为head,用来获取报文首部;
  • REQUEST URI:/ 表示我们没有请求特定的url,默认为/;
  • REQUEST VERSION:HTTP/1.1 表示HTTP版本为1.1。

再看请求头:

请求头的存在形式是每个请求头占一行

  • Host:baidu.com\r\n 表示目标主机为baidu.com,并且以 \r\n 结尾以便与下一个请求头字段进行分隔。
  • User-Agent表示代理,即浏览器类型,由于我们使用的是curl命令,所以显示curl/8.4.0。
  • Accept:浏览器可接受的MIME类型,这里为*/*,表示可以接受任何类型的响应,包括文本、图像、音频、视频等。

由于我们没有进行POST等请求,因此没有请求体。

接着观察第三个包

第三个包为响应包

讲解:

状态行:包含响应版本和响应状态码、提示信息

响应头(以每个占一行的形式存在):包含响应的服务器的资源信息

我们先看状态行:

  • Response Version:响应版本,这里表示版本为HTTP/1.1。
  • Status Code:响应状态码,这里 200 表示请求成功。
  • Response Phrase:响应状态码的提示信息,OK表示成功响应。

再看响应头:

1.Date表示服务端(即baidu.com)发送响应报文的时间

2.Server表示服务器版本

3.Last-Modified表示请求的对象创建或者最后修改的时间

4.ETag表示对象的标志值,如果对象修改了,这个值也会改变。

5.Accept-Ranges表示支持的范围单位,图中表示该服务器支持按字节范围请求资源

6.Content-Length表示内容长度,图中表示内容长度为81。

7.Cache-Control缓存控制,它指定了资源在被缓存之后可以被重用的最长时间,以秒为单位。图中"max-age=86400" 表示资源可以在缓存中保留一天(24小时)。

8.Expires表示该资源的缓存有效期截止时间,这个时间前,可以直接访问缓存副本。

9.Connection:连接类型,Keep-Alive表示这是一个长链接,可以继续用这个连接通信。

10.Content-Type用于指示响应主体的媒体类型,图中 “text/html” 表示响应的主体是 HTML 格式的文本内容,这意味着客户端收到这个响应后会知道要以 HTML 的方式进行解析和显示。

请求及响应报文可以通过追踪HTTP流显示:

目录
相关文章
|
6天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第14天】在数字化时代,网络安全和信息安全已经成为了我们生活中不可或缺的一部分。本文将介绍网络安全的基本概念,包括网络攻击者的动机和常见类型,以及如何通过加密技术和提高安全意识来保护我们的信息。我们还将探讨一些常见的网络安全漏洞,并提供一些实用的防护措施。无论你是个人用户还是企业,都可以从中获得有价值的信息。
32 12
|
5天前
|
SQL 安全 网络安全
网络安全与信息安全:构建防线的三大支柱在数字时代,网络安全和信息安全成为了我们不可忽视的重要议题。本文将深入探讨网络安全漏洞、加密技术以及安全意识这三大支柱,帮助您建立更全面的安全防护体系。
本文旨在分享有关网络安全漏洞、加密技术和安全意识的知识。首先,我们将介绍常见的网络安全漏洞及其形成原因;接着,我们将探讨几种主要的加密技术及其应用;最后,我们将强调提高安全意识的重要性并提供实用的建议。通过这些内容,读者可以更好地理解如何在日常生活和工作中保护自己的信息安全。
27 9
|
6天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第14天】本文将深入探讨网络安全与信息安全的重要性,包括网络安全漏洞、加密技术以及安全意识等方面。我们将通过实例和代码示例,帮助读者更好地理解网络安全的基本概念和应用,以及如何提高自己的网络安全意识和技能。
|
4天前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第15天】在数字化时代,网络安全与信息安全已成为我们日常生活中不可或缺的一部分。本文将介绍网络安全漏洞、加密技术和安全意识等方面的知识,以帮助读者更好地了解和应对网络安全挑战。通过深入浅出的方式,我们将探讨如何保护个人信息和数据安全,以及如何提高自己的网络安全意识。
|
6天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第14天】在数字化时代,网络安全和信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术和安全意识等方面的内容,以帮助读者更好地了解如何保护自己的网络安全和信息安全。我们将从网络安全漏洞的定义和类型开始,介绍一些常见的网络安全漏洞及其危害。然后,我们将讨论加密技术的重要性以及如何使用它来保护数据的安全性。最后,我们将强调安全意识的重要性,并提供一些实用的建议来提高个人和组织的网络安全水平。
|
2天前
|
存储 安全 网络安全
网络安全与信息安全:构建安全防线的多维策略在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的关键要素。本文旨在探讨网络安全漏洞的本质、加密技术的重要性以及提升公众安全意识的必要性,以期为构建更加坚固的网络环境提供参考。
本文聚焦于网络安全领域的核心议题,包括网络安全漏洞的现状与应对、加密技术的发展与应用,以及安全意识的培养与实践。通过分析真实案例,揭示网络安全威胁的多样性与复杂性,强调综合防护策略的重要性。不同于传统摘要,本文将直接深入核心内容,以简洁明了的方式概述各章节要点,旨在迅速吸引读者兴趣,引导其进一步探索全文。
|
2天前
|
SQL 安全 算法
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第18天】随着互联网的发展,网络安全问题日益严重。本文将从网络安全漏洞、加密技术、安全意识等方面进行知识分享,帮助读者了解网络安全的重要性和应对策略。通过本文,您将了解到如何保护自己的网络安全,提高安全意识,防范网络攻击。
|
1天前
|
安全 网络安全 数据安全/隐私保护
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【9月更文挑战第18天】在当今数字化时代,网络安全与信息安全已成为我们生活中不可或缺的一部分。本文将探讨网络安全漏洞、加密技术以及安全意识等方面的内容,以帮助读者更好地了解和保护自己的网络安全。我们将通过实例分析,深入探讨网络安全的重要性,并提供一些实用的技巧和建议。
|
2天前
|
数据采集 存储 JSON
从零到一构建网络爬虫帝国:HTTP协议+Python requests库深度解析
在网络数据的海洋中,网络爬虫遵循HTTP协议,穿梭于互联网各处,收集宝贵信息。本文将从零开始,使用Python的requests库,深入解析HTTP协议,助你构建自己的网络爬虫帝国。首先介绍HTTP协议基础,包括请求与响应结构;然后详细介绍requests库的安装与使用,演示如何发送GET和POST请求并处理响应;最后概述爬虫构建流程及挑战,帮助你逐步掌握核心技术,畅游数据海洋。
17 3
|
5天前
|
安全 算法 网络安全
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全和信息安全已成为维系社会秩序、保障个人隐私与企业机密的基石。本文旨在深入探讨网络安全漏洞的本质、加密技术的前沿进展以及提升公众安全意识的重要性,共同绘制一幅维护网络空间安宁的蓝图。
本文聚焦网络安全与信息安全的核心议题,通过剖析网络安全漏洞的成因与影响,阐述加密技术在保护信息安全中的关键作用,强调了提升全社会安全意识的紧迫性。不同于常规摘要,本文采用叙述式摘要,以第一人称视角引领读者走进网络安全的世界,揭示问题本质,展望未来趋势。