HTTP 协议的基本格式和 fiddler 的用法

这篇具有很好参考价值的文章主要介绍了HTTP 协议的基本格式和 fiddler 的用法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

目录

一.  HTTP 协议

1. HTTP协议是什么

2. HTTP协议的基本格式

 HTTP请求

首行 

                GET和POST方法:

                其他方法 

                经典面试题:

                URL

Header(请求报头)部分

空行 

​HTTP响应

         状态码总结:

二、Fiddler的用法

        1.Fidder的安装

         2.Fidder的使用


一.  HTTP 协议

1. HTTP协议是什么

  • HTTP(Hypertext Transfer Protocol)是一种用于在计算机网络中传输超文本的协议。它是 Web 上数据传输的基础,支持客户端和服务器之间的通信。HTTP 以请求-响应模式工作,客户端发送一个请求给服务器,服务器则返回一个响应作为回应。
  • HTTP使用URL(Uniform Resource Locator)来标识要请求的资源,常用的资源包括HTML文档、图像、视频、音频文件等。请求由首行、请求头部、空行和正文组成。响应由首行、响应头部、空行和正文组成。
  • HTTP协议通常使用TCP/IP作为传输协议,通过端口号80进行通信。它还可以通过HTTPS(HTTP Secure)协议进行安全通信,使用加密的SSL/TLS进行数据传输,一般使用端口号 443。
  •  总的来说,HTTP是互联网上数据传输的基础,它在客户端和服务器之间传递请求和响应,使得我们能够浏览网页、发送电子邮件、下载文件等。

2. HTTP协议的基本格式

当我们在浏览器中输入一个 搜狗搜索的 " 网址 " (URL) 时 , 浏览器就给搜狗的服务器发送了一个 HTTP 请求, 搜狗的服务器返回了一个 HTTP 响应 

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 下图就是HTTP协议的格式:HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 HTTP请求可以分成四个部分:

1.首行

2.请求报头(header)

3.空行

4.正文(body)

HTTP响应也可以分成四个部分:

1.首行

2.响应报头(header)

3.空行       

4.正文(body)

下面就是一个HTTP请求: 

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 HTTP请求

首行 

方法+URL+版本号

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 GET和POST方法:

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 在方法中 GET和POST是最常见的

GET 是最常用的 HTTP 方法. 常用于获取服务器上的某个资源.
在浏览器中直接输入 URL, 此时浏览器就会发送出一个 GET 请求.
另外, HTML 中的 link, img, script 等标签, 也会触发 GET 请求.

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议  HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 GET 请求的特点
首行的第一部分为 GET
URL 的 query string 可以为空, 也可以不为空.
header 部分有若干个键值对结构.
body 部分为空

 POST 方法也是一种常见的方法. 多用于提交用户输入的数据给服务器(例如登陆页面).
通过 HTML 中的 form 标签可以构造 POST 请求, 或者使用 JavaScript 的 ajax 也可以构造 POST 请求.

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

POST 请求的特点
首行的第一部分为 POST
URL 的 query string 一般为空 (也可以不为空)
header 部分有若干个键值对结构.
body 部分一般不为空. body 内的数据格式通过 header 中的 Content-Type 指定. body 的长度由header 中的 Content-Length 指定.

其他方法 

PUT 与 POST 相似,只是具有幂等特性,一般用于更新
DELETE 删除服务器指定资源
OPTIONS 返回服务器所支持的请求方法
HEAD 类似于GET,只不过响应体不返回,只返回响应头
TRACE 回显服务器端收到的请求,测试的时候会用到这个
CONNECT 预留,暂无使用

经典面试题:

GET 和 POST 之间的典型区别

本质上并没有什么区别,只是使用习惯上有区别:

1.就传递消息而言:

GET 也可以给服务器传递一些信息,GET传递的信息一般都放在query string.

   POST 传递消息则是通过body

2.语义上的差别(使用场景)

  GET 请求 一般是用于从服务器获取数据.

  POST请求一般是用于给服务器提交数据.

3.GET 通常会被设计成幂等的,POST 不要求幂等

  幂等:相同的输入,得到的结果是确定的.

4.GET 可以被缓存的,POST 则一般不能被缓存.

  把请求的结果保存下来,下次请求的时候,就不必真请求了,直接取缓存结果.

 URL

平时我们俗称的 "网址" 其实就是说的 URL (Uniform Resource Locator 统一资源定位符).
互联网上的每个文件都有一个唯一的URL

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

以下面这个网址为例 

https://v.bitedu.vip/personInf/student?userId=10000&classId=100

  •  https : 协议方案名. 常见的有 http 和 https, 也有其他的类型. (例如访问 mysql 时用的jdbc:mysql )
  • user:pass : 登陆信息. 现在的网站进行身份认证一般不再通过 URL 进行了. 一般都会省略
  •  v.bitedu.vip: 服务器地址. 此处是一个 "域名", 域名会通过 DNS 系统解析成一个具体的 IP 地址.(通过 ping 命令可以看到, v.bitedu.vip 的真实 IP 地址为 118.24.113.28 )
  • 端口号: 上面的 URL 中端口号被省略了. 当端口号省略的时候, 浏览器会根据协议类型自动决定使用哪个端口. 例如 http 协议默认使用 80 端口, https 协议默认使用 443 端口.
  • /personInf/student : 带层次的文件路径.
  • userId=10000&classId=100 : 查询字符串(query string). 本质是一个键值对结构. 键值对之间使用& 分隔. 键和值之间使用 = 分隔.
 Header(请求报头)部分

header 的整体的格式也是 "键值对" 结构. 每个键值对占一行. 键和值之间使用分号分割 

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

HOST

大概描述了服务器所在的地址和端口

Host 这里的地址和端口,用来描述最终要访问的目标.

这个内容大概率和URL中是一样的,也有一定的情况下是不同的.

Content-Length

表示body中的数据长度

Content-Type

表示请求的body中的数据格式

如果是GET请求,没body,请求中没有上述两个字段.

如果是POST请求,有body,必须要有上述两个字段.

User-Agent(简称UA)

描述了浏览器和操作系统的版本.

现在主要用于区分PC端和移动端.

Referer

当前页面的来源.

如果直接通过地址栏输入地址,直接点击收藏夹,都是没有referer

Cookie

Cookie(中文名“HTTP cookie”或“网络cookie”)是由网站服务器发送到用户浏览器并存储在本地计算机上的小文件,通常用于记录用户的活动和偏好设置,以便在以后的访问中提供更加个性化的体验。Cookie 在网站开发、广告投放和用户追踪等方面,具有很重要的作用。虽然很多人对 Cookie 持有负面看法,但它也是现代 Web 应用的重要组成部分。

通过下面的步骤可以观察到Cookie中的内容:
HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

空行 

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议 HTTP响应

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

HTTP/1.1  版本号

200: 状态码

OK: 状态码描述

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 状态码总结:

 二、Fiddler的用法

1.Fidder的安装

 找到Fiddler官网

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 选择所需版本

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

然后随意填写进行下载 

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 2.Fidder的使用

 进入之后进行如图设置HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

下面就是我们进行抓包的请求

双击左侧的请求列表中的选项,查看到请求的详细情况.

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

下面就是我们抓包的响应 

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

  观察抓包结果,可以看到,当前http请求是一个行文本格式的数据,相比于二进制的数据,用户可以更方便的直接观察.

会发现记事本出现乱码.这是因为,响应数据本来也是行文本数据,但是有的服务器会对响应进行压缩,变成二进制的数据了,如果想要观察到行文书数据,点击下面图片内容

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

 会看到没有乱码了.

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议

蓝色的说明这是个html页面.这是我们最关注的,其它的请求都是基于这个请求产生.

绿色的是js

黑色的是一些返回数据.

HTTP 协议的基本格式和 fiddler 的用法,网络编程,JavaEE,http,fiddler,网络协议文章来源地址https://www.toymoban.com/news/detail-650405.html

到了这里,关于HTTP 协议的基本格式和 fiddler 的用法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTTP协议基本格式

    HTTP即HyperText Transfer Protocol(超文本传输协议),HTTP基于TCP/IP协议传输数据。 注:Chrome浏览器或Chrome内核浏览器可用(如Edge, Firefox) 在目标网页打开开发者工具: 点击网络(Network): 此时就可以看到目标网页的所有请求。 查看请求和响应: 浏览器自带抓包工具功能有限,

    2024年02月08日
    浏览(35)
  • HTTP 协议的基本格式

    什么是HTTP?HTTP是应用层的一个重要协议.它定义了浏览器怎样向服务器请求文件,以及服务器怎样把文件传送给浏览器. 我们打开浏览器,手动输入一个网址:baidu.com.那么此时浏览器就会给百度的服务器发送请求.百度服务器在返回一个html的响应. 那么我们如何学习HTTP协议呢?通过它

    2024年02月06日
    浏览(33)
  • HTTP协议的基本格式

    目录 一、HTTP请求  1.1 首行 1.1.1 URL 1.1.2 方法 1.2 请求报头(header) 1.2.1 host ​编辑 1.2.2 Content-Length和Content-Type 1.2.3 User-Agent 1.2.4 Referer 1.2.5 Cookie 1.3 请求正文(body) 1.3.1  application/x-www-form-urlencoded  1.3.2 application/json 1.3.3  multipart/form-data 二、HTTP响应 2.1 首行 2.1.1 状态码 H

    2024年02月17日
    浏览(50)
  • 【Java网络编程】HTTP超文本传输协议

        HTTP 全称为 Hyper Text Transfer Protocol 超文本传输协议,它是基于 TCP 传输协议构建的应用层协议,作为支撑万维网 www 的核心协议,为了保证其效率及处理大量事务的能力,因此在设计时, HTTP 被制定成为一种无状态协议,也就是说: HTTP 本身不会对发送过的请求和相应的通

    2024年04月09日
    浏览(58)
  • python基于http的网络通信和网站端口暴露;Python网络编程之HTTP协议的python应用

    HTTP(Hypertext Transfer Protocol)即超文本传输协议,是Web应用程序使用的协议,在Web浏览器和Web服务器之间传递HTML页面和数据。HTTP是基于TCP/IP协议来传输数据的,是一种无状态的协议。 关键特点: 支持客户/服务器模式:Web浏览器作为HTTP客户端通过URL向HTTP服务器发送HTTP请求,

    2024年02月04日
    浏览(54)
  • Python中的网络编程Socket与HTTP协议的实践【第158篇—网络编程】

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 在当今互联网时代,网络编程是程序员不可或缺的一项技能。Python作为一种高级编程语言,提供了丰富的网络编程库,使得开发者能够轻松地

    2024年04月09日
    浏览(85)
  • 学习网络编程No.8【应用层协议之HTTP】

    北京时间:2023/10/9/13:03,一晃好多天过去了,9月14号的文章终于在昨天发出去了,也是许久没有更文了,国庆放假期间由于各种原因,在王者峡谷和铲子世界遨游的不亦乐乎,有待改善!目前面临挑战艰巨,问题很多,在这个空窗期我们需要有一股强大的支撑作为动力,毕竟

    2024年02月08日
    浏览(46)
  • Python中两种网络编程方式:Socket和HTTP协议

    本文分享自华为云社区《Python网络编程实践从Socket到HTTP协议的探索与实现》,作者:柠檬味拥抱。 在当今互联网时代,网络编程是程序员不可或缺的一项技能。Python作为一种高级编程语言,提供了丰富的网络编程库,使得开发者能够轻松地实现各种网络应用。本文将介绍P

    2024年04月16日
    浏览(41)
  • 网络编程——RPC与HTTP基本介绍、历史追溯、主流应用场景、对比分析、为什么还需要使用RPC

    HTTP协议(Hyper Text Transfer Protocol) 超文本传输协议 : 一个用于在网络上交换信息的标准协议,它定义了客户端(例如浏览器)和服务器之间的通信方式。如平时上网在浏览器上敲个网址url就能访问网页,这里用到的就是HTTP协议。 明确 HTTP 是一个协议,是一个超文本传输协议,

    2024年02月16日
    浏览(41)
  • 2.5 - 网络协议 - HTTP协议工作原理,报文格式,抓包实战

    「作者主页」: 士别三日wyx 「作者简介」: CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」: 对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》 HTTP(Hypertext Transfer Protocol)是 「超文本传输协议」 ,基于B/S架构(Browser

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包