计算机网络:应用层(二) Web与http协议

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《C++专栏》::记录我学习C++的经历,看完你一定会有收获。|||
    ====> |||《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。|||
    ====> |||《C#专栏》::记录我复习C#的经历,深度理解查漏补缺,不定期更新。|||
    ====> |||《计算机网络专栏》::记录我学习计算机网络,看完你一定会有收获。|||

计算机网络:应用层(二) web与http协议

  • 什么是Web
    • Web缓存
  • http是什么
    • http报文结构和内容
    • 传输过程解析
    • Cookie解析

什么是Web

Web是一些对象的集合,我们所看到的网页就是一个Web,这个网页中除了有网页自身这个HTML对象外,很可能还有其他对象的引用(URL链接)。
所谓URL链接其实就是我们所在网页的顶部看到的链接,它有着一些基本的格式。

Web页的协议就是http/https协议,下面会介绍该协议。

Web缓存

如果我要访问某一个网址,但是该网址离我所在的物理距离很远,那么我访问到该网址的速度就会很慢,为了解决这个问题,我们可以在其中设置一个中间服务器,其中存储了我想要的内容,那么以后访问的时候我就可以访问中间服务器,这样大大减小了时间的浪费。

http是什么

http(超文本传输协议),它是一个只能运行在TCP协议上的能够让2个互联网主机之间传输视频,图片,文字等超文本的一个约定和规范。

http报文结构和内容

http报文是ASCII可读的及每段二进制数都可以翻译为ASCII
http请求报文的内容如下图。
在这里插入图片描述

请求行主要包含了怎样请求,请求的链接,以及协议的版本,协议版本不同会有所差异。
请求头部,主要是一些重要的属性,头部字段名称:比如Host后根请求主机的域名是什么,Connection字段是请求的链接是持续性的还是非持续性的等等。

http响应报文的内容如下图。
在这里插入图片描述
其中最重要的就是状态码了,状态码有以下分类。

1xx:实际中用的很少不讨论。
2xx:代表服务器成功处理了请求,如200代表OK,204代表基本OK,但是没有body数据…
3xx:代表请求的资源的位置发生了变动,需要对URL重定向,如301代表该资源永久不存在与该URL,需要修改新的URL值去访问,302代表临时重定向,只不过当前无法通过该URL访问…
4xx:代表客户端有问题,如报文错误,服务器无法处理等,如404代表资源在服务器上未找到/不存在,403代表服务器禁止访问该资源…
5xx:代表服务器内部处理有问题,如501表示客户端请求目前不支持,502代表服务器作为网关/代理时,自己工作正常,但是访问的服务器发生错误…

其次http协议是基于TCP的协议,TCP协议传输过程中会出现粘包问题,对于http报文来说,通过回车和换行解决报文粘包问题,对于http报文的实体来说,可以通过Content-Length字段记录http报文实体的边界,从而解决粘包问题。

传输过程解析

在传输过程中,首先应用层要使用下层及运输层为其提供的服务,http基于TCP协议运输的,所以首先要进行TCP的三次握手,在成功建立了通讯信道后,数据在此信道上进行传输,忽略TCP三次握手的时间,一次传输需要消耗的时间是1个RTT如图。
在这里插入图片描述
在http1.0版本中,默认在传输一次过后就关闭这个传输信道,而在http1.1版本中,默认为只要有一方没有发送中断链接报文,则就不中断链接。
同时我们也可以在http请求报文中使用Connection字段来设置传输的方法。
http不仅支持上述传输,还支持流水线传输,及上一个报文刚发出去,下一个报文就已经准备发出了,这样大大提高了http报文传输的效率。

Cookie解析

http是无状态性的,每次访问服务器,服务器不会记录访问的状态,为了解决这个问题,可以使用Cookie技术。
Cookie技术就时将用户信息写入Cookie中进行维护。
当一个用户第一次访问该服务器时,服务器会将Cookie和响应报文一起发回去,当该用户第二次访问该服务器时,其请求报文会将上次返回的Cookie也一并发送,这样服务器就可以读取Cookie值,就能进行状态的记忆了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/278674.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023.12.13 关于 MySQL 复杂查询

目录 聚合查询 聚合函数 group by 子句 执行流程图 联合查询 笛卡尔积 内连接 外连接 左外连接 右外连接 自连接 子查询 单行子查询 多行子查询 EXISTS 关键字 合并查询 union on 和 union 的区别 聚合查询 聚合函数 函数说明COUNT([DISTINCT] expr)返回查询到…

Java数据结构-通过数组封装-结构分析

1、默认arrayList的数组未初始化&#xff0c;长度为0&#xff0c;容量默认是10 ArrayList<Integer> arrayList new ArrayList<>();System.out.println(ClassLayout.parseInstance(arrayList).toPrintable()); java.util.ArrayList object internals: OFF SZ …

linux系统命令

linux常用命令 端口相关文件目录管理文件查看文件属性日志查看系统命令防火墙相关命令 端口相关 netstat -ntpl # 查询linux系统tcp端口情况 fuser -n tcp 80 # 查询80端口是否被占用 lsof -i:<port> lsof -i:9099 | grep java lsof -i :9099 | awk {print $2, $1, $3}文…

纽扣电池是什么

纽扣电池 电工电气百科 文章目录 纽扣电池前言一、纽扣电池是什么二、纽扣电池的类别三、纽扣电池的作用原理总结前言 纽扣电池具有易于更换的特点,这使得它们成为许多便携设备的理想电源选择。但是,由于它们较小且外壳易于打开,所以家中有婴幼儿的家庭应特别注意将其放置在…

docker学习(九、分布式存储亿级数据知识)

docker学习&#xff08;九、分布式存储亿级数据知识&#xff09; 一、哈希取余分区二、一致性哈希算法分区三、哈希槽分区&#xff08;重点&#xff09; 内容整体是以Redis做分布式为例的~~~先出理论&#xff0c;后出实践docker操作 一、哈希取余分区 举个例子&#xff1a;目前…

RT-DETR优化:ASF-YOLO提取多尺度特征 | 2023年12月最新成果

🚀🚀🚀本文改进: ASF-YOLO一种新的特征融合网络架构,该网络由两个主要的组件网络组成,可以为小目标分割提供互补的信息:(1)SSFF模块,它结合了来自u;(2)TFE模块,它可以捕获小目标的局部精细细节等 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学…

为什么 GAN 不好训练

为什么 GAN 不好训练&#xff1f;先看 GAN 的损失&#xff1a; 当生成器固定时&#xff0c;堆D(x)求导&#xff0c;推理得到&#xff08;加号右边先对log求导&#xff0c;再对负项求导&#xff09; 然后在面对最优Discriminator时&#xff0c;Generator的优化目标就变成了&…

Linux--Docker容器(1)

这里写目录标题 简介名词解释作用 指令在本地创建容器的过程&#xff1a;&#xff08;这里以tomcat为例&#xff09;访问容器端口映射目录挂载验证端口映射验证目录挂载 删除镜像多小组访问容器mysql容器 简介 名词解释 Docker镜像&#xff1a;可以将镜像理解为面向对象的类&a…

CLIP 对比学习 源码理解快速学习

最快的学习方法&#xff0c;理清思路&#xff0c;找视频讲解&#xff0c;看源码逻辑&#xff1a; CLIP 源码讲解 唐宇 输入&#xff1a; 图像-文本成对配对的数据 训练模型的过程&#xff08;自己理解&#xff09;&#xff1a; 怎么做的&#xff1f;&#xff1a;利用数据内部…

使用opencv的Laplacian算子实现图像边缘检测

1 边缘检测介绍 图像边缘检测技术是图像处理和计算机视觉等领域最基本的问题&#xff0c;也是经典的技术难题之一。如何快速、精确地提取图像边缘信息&#xff0c;一直是国内外的研究热点&#xff0c;同时边缘的检测也是图像处理中的一个难题。早期的经典算法包括边缘算子方法…

人工智能与星际旅程:技术前沿与未来展望

人工智能与星际旅程&#xff1a;技术前沿与未来展望 一、引言 随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;在各个领域的应用越来越广泛。在星际旅程领域&#xff0c;AI也发挥着越来越重要的作用。本文将探讨人工智能与星际旅程的结合&#xff0c;以及…

在开发微信小程序的时候,报错navigateBack:fail cannot navigate back at firstpage

这个错误的意思是&#xff1a;在这个页面已经是第一个页面了&#xff0c;没办法再返回了 报错原因 这个错误原因其实也简单&#xff0c;就是在跳转的时候使用了wx.redirectTo()&#xff0c;使用wx.redirectTo()相当于重定向&#xff0c;不算是从上一个页面跳转过来的&#xf…