计算机网络:应用层(二) 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值,就能进行状态的记忆了。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

编辑器Sublime text 常用快捷命令 列模式 替换空行

平替notepad 下载可取官网 www.sublimetext.com 据说可以无限试用,没有功能限制 1、快速删除空行 ctrl h选择正则表达式 .*Find输入: ^(\t)*$\nReplace输入:点击Replace All 2、快速选择指定字符 用鼠标选中alt f3修改 3、列编辑模式 ct…

基于ssm框架仓库系统论文

摘 要 使用旧方法对仓库信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在仓库信息的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。 这次开发的仓库管理系统有管理员和…

240Wqps,美团用户中台, 如何使用DDD架构?

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 谈谈你的DDD落地经验? 谈谈你对DDD的理解&#x…

DCMM数据管理能力成熟度需要具备什么条件?

DCMM,全称为数据管理能力成熟度评估模型,是一个组织数据管理和应用能力的评估框架。该模型可以帮助组织清晰地定义其数据当前所处的发展阶段以及未来发展方向。具体来说,DCMM将数据管理能力划分为8个核心能力域:数据战略、数据管理…

FPGA竞赛_考试赢积分免费兑换FPGA项目课(每周更新积分排名情况)

明德扬特别组织了考试竞赛赢积分兑换FPGA项目课活动,欢迎大家积极参加考试! 我是本次活动的负责人小易老师,有任何问题可以联系我:13112063618(微信同步) 一.考试兑换FPGA项目课 可以兑换FPGA项目课&#…

Composer 安装与使用

Composer 是 PHP 的一个依赖管理工具。我们可以在项目中声明所依赖的外部工具库,Composer 会帮你安装这些依赖的库文件,有了它,我们就可以很轻松的使用一个命令将其他人的优秀代码引用到我们的项目中来。 Composer 默认情况下不是全局安装&a…

微服务黑马头条(简略笔记)

Linux中nacos的拉取安装 拉取naocs镜像:docker pull nacos/nacos-server:1.2.0创建容器:docker run --env MODEstandalone --name nacos --restartalways -d -p 8848:8848 nacos/nacos-server:1.2.0访问地址:http://192.168.200.130:8848/n…

迈入数据结构殿堂——时间复杂度和空间复杂度

目录 一,算法效率 1.如何衡量一个算法的好坏? 2.算法效率 二,时间复杂度 1.时间复杂度的概念 2.大O的渐进表示法 3.推导大O的渐进表示法 4.常见时间复杂度举例 三,空间复杂度 一,算法效率 数据结构和算法是密…

LeetCode Hot100 25.K个一组翻转链表

题目: 给你链表的头节点 head ,每 k 个节点一组进行翻转,请你返回修改后的链表。 k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么请将最后剩余的节点保持原有顺序。 你不能只是单纯…

C++相关闲碎记录(14)

1、数值算法 &#xff08;1&#xff09;运算后产生结果accumulate() #include "algostuff.hpp"using namespace std;int main() {vector<int> coll;INSERT_ELEMENTS(coll, 1, 9);PRINT_ELEMENTS(coll);cout << "sum: " << accumulate(…

软考科目如何选择?

软考科目繁多&#xff0c;让许多学弟学妹感到困惑&#xff0c;不知道该选择哪个科目。以下是一些建议&#xff0c;可以根据个人实际需求选择备考的科目。 1、初级是可选的 软考初级非常简单&#xff0c;适合刚刚入门学习的朋友报考。对于一些有基础的朋友&#xff0c;建议直接…

微信公众号(私域)的运营和变现方式

运营微信公众号也有一段时间了&#xff0c;现在将自己学习到的知识和一些心得体会分享给大家&#xff0c;希望能够对一些公众号新手有所帮助。 01 清楚公众号的变现方式 如果你注册公众号写文章不仅仅是为了记录生活、抒发感情&#xff0c;而是带着成长和赚钱的目的&#xff0…

【餐饮创业系列】创业指南

目录 一、地理位置二、菜品特色三、装修风格四、服务质量五、人力资源六、食材采购七、成本控制八、营销推广九、服务创新十、经营管理系列文章版本记录 开一间餐饮店是许多创业者的梦想&#xff0c;然而&#xff0c;要实现这个梦想并不容易。开店前&#xff0c;需要做很多准备…

FLStudio20最新2024年中文汉化版

FLStudio21.0.2.3中文版完整下载是最好的音乐开发和制作软件也称为水果循环。它是最受欢迎的工作室&#xff0c;因为它包含了一个主要的听觉工作场所。最新FL有不同的功能&#xff0c;如它包含图形和音乐音序器&#xff0c;帮助您使完美的配乐在一个美妙的方式。此程序可用于Mi…

【unity小技巧】unity最完美的CharacterController 3d角色控制器,实现移动、跳跃、下蹲、奔跑、上下坡,复制粘贴即可

最终效果 文章目录 最终效果前言为什么使用CharacterControllerSimpleMove和Move如何选择&#xff1f;1. SimpleMove2. Move 配置CharacterController参数控制相机移动跳跃下蹲处理下坡抖动问题实现奔跑和不同移速控制完整代码完结 前言 其实一开始我是不打算写的&#xff0c;…

LetNet、AlexNet、ResNet网络模型实现手写数字识别

本篇文章是博主在AI、强化学习等领域学习时&#xff0c;用于个人学习、研究或者欣赏使用&#xff0c;并基于博主对人工智能等领域的一些理解而记录的学习摘录和笔记&#xff0c;若有不当和侵权之处&#xff0c;指出后将会立即改正&#xff0c;还望谅解。文章分类在AI学习&#…

欧睿 × 和鲸:联合打造 AI 中台赋能企业数字化转型,大幅提升模型产品研发效率

近年来&#xff0c;在泛零售及快消行业&#xff0c;由于市场格局越发瞬息万变、消费场景愈加错综复杂&#xff0c;以机器学习算法、人工智能模型代替纯人脑人工完成商品计划、运营、供应链管理已逐渐成为主流。 oIBP 欧睿数据&#xff08;下简称“欧睿”&#xff09;是国内领先…

java实现局域网内视频投屏播放(二)爬虫

代码链接 视频播放原理 大多视频网站使用的是m3u8&#xff0c;m3u8其实不是一个真正的视频文件&#xff0c;而是一个视频播放列表&#xff08;playlist&#xff09;。它是一种文本文件&#xff0c;里面记录了一系列的视频片段&#xff08;segment&#xff09;的网络地址。这些…

【Spring Boot】快速入门

一、引言 1、什么是spring boot&#xff1f; Spring Boot是由Pivotal团队提供的全新框架&#xff0c;其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置&#xff0c;从而使开发人员不再需要定义样板化的配置。通过这种方式&#xff…

数据库02-04 中级SQL

01.on关键字&#xff1a; 主要用join…on来用多关系查询&#xff0c;和where关键字的相同 student关系&#xff1a; takes关系&#xff1a; 02.一般外连接 自然连接&#xff1a; 这个外连接&#xff08;自然连接&#xff09;会缺少空值的元祖&#xff08;本例子中的stude…