【JavaEE网络】HTTP/HTTPS协议的工作原理与格式详解

本文介绍了HTTP/HTTPS协议的基本概念,包括其在浏览器和手机应用中的作用,以及应用层协议的必要性。详细解释了HTTP协议的工作过程,涉及HTTP请求和响应,强调了HTTP报文中的空行对于正确解析的重要性。同时提到了抓包工具在学习协议格式中的应用。
摘要由CSDN通过智能技术生成


HTTP/HTTPS

HTTP是什么

在这里插入图片描述

应用层,一方面是需要自定义协议,一方面也会用到一些现成的协议

HTTP及HTTPS是应用层重点协议

使用浏览器,打开网站,这个过程都是 HTTP 来支持的

使用手机 app,加载数据,这个过程大概率也是 HTTP 来支持的

HTTP => 超文本传输协议

文本:字符串

超文本:除了字符串还有图片、字体、视频、音频……

我们平时打开一个网站,就是通过 HTTP 协议来传输数据的.

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

这个响应结果被浏览器解析之后,就展示成我们看到的页面内容。(这个过程中浏览器可能会给服务器发送多个 HTTP 请求,服务器会对应返回多个响应,这些响应里就包含了页面 HTML,CSS,JavaScript,图片,字体等信息).

理解“应用层协议”

我们已经学过 TCP/IP ,已经知道目前数据能从客户端进程经过路径选择跨网络传送到服务器端进程[ IP+Port ].

可是,仅仅把数据从A点传送到B点就完了吗?

这就好比,在淘宝上买了一部手机,卖家[ 客户端 ]把手机通过顺丰[ 传送+路径选择 ] 送到买家 [ 服务器 ] 手里就完了吗?

当然不是,买家还要使用这款产品,还要在使用之后,给卖家打分评论。

所以,我们把数据从A端传送到B端, TCP/IP 解决的是顺丰的功能,而两端还要对数据进行加工处理或者使用,所以我们还需要一层协议,不关心通信细节,关心应用细节!

这层协议叫做应用层协议。而应用是有不同的场景的,所以应用层协议是有不同种类的,其中经典协议之一的HTTP就是其中的佼佼者.

再回到我们刚刚说的买手机的例子,顺丰相当于 TCP/IP 的功能,那么买回来的手机都附带了说明书【产品介绍,使用介绍,注意事项等】,而该说明书指导用户该如何使用手机【虽然我们都不看,但是父母辈有部分是有看说明书的习惯的:)】,此时的说明书可以理解为用户层协议

理解HTTP协议的工作过程

当我们在浏览器中输入一个 “网址”, 此时浏览器就会给对应的服务器发送一个 HTTP 请求. 对方服务器收到这个请求之后, 经过计算处理, 就会返回一个 HTTP 响应.

在这里插入图片描述

事实上, 当我们访问一个网站的时候, 可能涉及不止一次的 HTTP 请求/响应 的交互过程

注意: 当前 搜狗主页 是通过 https 来进行通信的。https 是在 http 基础之上做了一个加密解密的工作,后面再介绍。

HTTP协议格式

学习HTTP需要学习协议格式,就要用到抓包工具(本质上是个代理)

代理客户端的是正向代理,代理服务器的是反向代理

HTTP是文本协议,相比之下IP、TCP、UDP是二进制协议,而HTTPS加密之后就变成了二进制协议了

打开一个浏览器,涉及到多次浏览器和服务器之间的交互

学习HTTP协议格式,也就是了解这里的各个属性及其含义

  1. 请求

在这里插入图片描述

  1. 响应

在这里插入图片描述

在这里插入图片描述

思考问题: 为什么 HTTP 报文中要存在 “空行”?

因为 HTTP 协议并没有规定报头部分的键值对有多少个。空行就相当于是 “报头的结束标记”,或者是 “报头和正文之间的分隔符”。

HTTP 在传输层依赖 TCP 协议,TCP 是面向字节流的。如果没有这个空行,就会出现 “粘包问题”.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值