Http协议

一、什么是Http协议

http协议指的是超文本传输协议,是java中一种非常重要的协议,它不仅仅能传输文字数据,还能传输图片,音频等。在Http3.0版本前,依赖的主要是TCP协议,但是因为这个协议他会有阻塞,导致发送效率大打折扣,所以自这里之后,后续就变成了UDP为主

二、常见的场景

像我们web开发中,网页前端和后端之间的通信,移动端和后端之间的通信都用到这个http传输

三、Http工作过程

它这个传输过程是一个典型的一问一答的模型,就像下面这个图

四、抓包

这个指的是在http传输过程,通过某个软件进行,获取请求和响应信息,关系如下图

我们后期会通过这种方法来确定bug是来自后端还是前端的,这里我们使用的抓包工具是Fiddler

当我们打开之后,Fiddler就会开始抓包,其中,左边的是代表抓取到的数据,而右边则是请求和响应的数据的详情

这个是请求的格式,在请求行下面的请求报头是以键值对的格式来显示的,当空行过后,下面的就是正文,但正文不一定会有,像登录时就有可能会有正文。响应的格式也是如此,我这里就省略了

五、URL

这个是就是我们俗称的网址,它用来标识一个网络上的资源位置,下图是一个完整的url,接下来,我以这个为例进行讲解

首先,登录信息这个现在基本上见不到了,因为我们一般都以短信,微信的方式进行替代了,服务器地址这里是ip地址,更常见的是域名。在这里后面,我们会加上服务器的端口号,以冒号隔开,不过你可能会发现,有些url没有端口号为什么也可以的,那是因为浏览器给http一个默认的端口号80,https默认端口号443,所以便可以省略。而带层次的文件路径可以理解为服务器里面的目录结构,就像电脑里文件的目录结构,例如:"C:\Users\lenovo\.m2"。问号后面则是查询字符串,它的格式是键值对,通过&进行分割开来。片段标识符则是用来区分在同一个页面,不同的部分

值得注意的是,当你的queryString里面包含特殊符号,他会进行转义成ASCLL码

,防止浏览器无法解析

六、认识方法Method

以下都是方法的请求,它表示这个请求要做什么动作,一般我们用的最多是post,get,put和delete

GET

先说get,我们一般80%的情况都是用这个,他表示从服务器获取某个资源

POST

其次是post,这个表示的是对服务器进行上传某个资源

PUT

这个类似post,也是上传某个资源到服务器

DELETE

这个是删除服务器的某个资源

不过,话说回来,这个其实并没有硬性规定,所以也就是说,实际开发中可以不遵循这个规则。

七、认识报头

host

这个表示的是服务器主机和端口

Content-Length

这个是body中数据的长度,单位为是字节

Content-Type

这个是表示请求body中数据格式,这个和上面的Cintent-Length是要搭配着body同时出现的。并且他们可能会同时出现,出现在响应或请求中

他常见的格式是text/html,text/css,application/JavaScript,application/json等

User-Agent

表示浏览器/操作系统的属性. 形如:

复制代码
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36 Edg/146.0.0.0

其中Mozilla这个对应着的是Firefox这个浏览器,后面的window这表示我当前电脑的属性,再后面的Chrome那表示的是浏览器的版本

refer

这个表示这个页面是从哪个页面跳转过来的,在日常中可以用于广告系统,像某网站内含有一个广告,当用户点进这个广告时,refer则能显示是从哪个网站点入,从而让哪个网站获得对应的收入。但是http中的refer是能被劫持,修改的

这是浏览器这端本地存储数据的一种机制,简单的讲就是你的电脑会给你的浏览器在你的硬盘上创建一个存储数据的地方(因为网页js不能直接访问硬盘),然后cookie就是存到这个地方。然后,cookie是按照键值对的格式进行构造,并且如何构造取决于程序员

并且它会根据每个域名维度进行划分,每个域名下都有自己的cookie。

如果还是不太懂得话可以看看下图的流图进行理解

相关推荐
优化Henry11 分钟前
学习笔记之爱立信站点指向证书执行
运维·服务器·网络·笔记·学习·信息与通信
霸道流氓气质31 分钟前
邮件发送服务(以 SendGrid 为例)— 概念、原理、场景与代码示例
网络
—Miss. Z—33 分钟前
第11章 故障管理
网络·数据库·oracle
保密资质顾问说1 小时前
网络安全等级保护与涉密信息系统集成资质的区别及选型分析
运维·网络·经验分享·安全·web安全
-今昭-2 小时前
MooseFS分布式文件系统
linux·服务器·网络
砚凝霜2 小时前
软考网络工程师|案例分析:Eth‑Trunk 链路聚合、iStack 堆叠、CSS 集群核心考点总结
前端·css·网络
万联WANFLOW2 小时前
Meta开源了能本地跑的agent
运维·服务器·网络·人工智能·业界资讯
Java小白笔记3 小时前
Windows系统免软件命令激活
java·网络·人工智能·windows·ai·ai编程
智购科技自动贩卖机3 小时前
自动售货机硬件主控方案选型实战:单片机、树莓派、ESP32怎么选?
人工智能·单片机·嵌入式硬件·物联网·网络协议·yolo·架构
随风而飘1863 小时前
罗德与施瓦茨(R&S)SMB100B中端高性能模拟射频/微波信号发生器
网络·功能测试·科技·测试工具