【后端】HTTP4

news2025/8/10 13:31:45

回顾一下之前学习的内容

通过之前的学习,我们大致了解了HTTP请求响应的报文格式

HTTP请求

(1)首行(方法  URL  版本号)

(2)请求头 header

(3)空行

(4)正文body

HTTP响应

(1)首行(版本号  状态码  状态码描述)

(2)响应头header

(3)空行

(4)正文

我们在学习请求的格式中,我们学习了首行的方法和URL

还讲述了请求header的部分标准键值对:

1)Host

2)Content-Length & Content-Type

3)User-Agent

4)Referer


接下来,我们再继续往下学习,我们还要在学习一个请求header里面的标准键值对——Cookie

Cookie不是小饼干~它同样是请求头中一个重要字段:这是浏览器在本地储存的一种机制(存在硬盘上)

下图是访问的网页时,浏览器保存下来的Cookie

每当我们打开一个网页,看屏幕左上角根域名在一起的那个小锁头,点击就会显示Cookie,画红圈的部分就是Cookie 

 Cookie是按照不同的域名维度来组织的

不同的域名有不同的Cookie,一个网站发起的http请求可能来自多个域名,每一个Cookie都会对应一个键值对,Cookie和query string一样,都是由程序员自定义的~


Cookie从哪里来,要到哪里去?

Cookie这里的键值对是简单的字符串,也就是说,使用Cookie来作为保存数据的手段,只能存一些简单的键值对信息,简单的字符串,不能存什么图片视频音频啥的

比如说,可以使用Cookie来存

1.上次访问页面的时间

2.当前访问页面的次数

3.当前访问页面的身份信息(身份标识,id)

那么Cookie从哪里来的呢?

cookie存在服务器,但来源是浏览器,比如说上图的搜狗网页里面的cookie,都是我们去访问搜狗这个网页后,就会访问到搜狗的服务器,由服务器返回的这些cookie

在服务器返回的响应报文中,可以在响应header中包含一个或者多个Set-Cookie这样的资源,浏览器看到Set-Cookie就会把这样的数据给保存在浏览器本地~

Cookie要到哪里去?

cookie来自服务器,储存在浏览器,最终还要返回到服务器。当浏览器保存了cookie之后,下次访问同一个网站,就会把之前本地储存的cookie再通过http请求header中的cookie再给带过去

那么我们想想,为什么把cookie从服务器存到浏览器中,之后再访问服务器的时候,又要把cookie返回给服务器?

因为服务器要服务的客户端有很多很多,这些不同的的客户端都是有着自己的相关数据,

或者简单来说就是,cookie相当于你的通行证,你的这个通行证在我的服务器登记过,我这里就会记录你的相关信息了,之后服务器会给你提供更便捷的服务吧

下面我们来看一个cookie经典应用场景(不是唯一场景

最常用的场景就是在客户端维持登录的状态

我们在某个网站登录成功后,浏览器就会获取到服务器的发送来的cookie,这些cookie里面有客户端的身份信息,然后接下来访问该服务器的其他页面时,服务器也知道是谁在登录

 当你第一次带着你的用户名和密码去请求登录的时候,服务器就会去校验你的用户名和密码,同时服务器这边会储存一个键值对,key就是刚才返回的身份标识,value就是用户的详细信息(服务器要给多个用户提供服务,每个用户就会对应一组不同的键值对)

然后当你再次去访问该服务器的时候,浏览器会在请求中加入有关你信息的cookie发送给服务器,服务器就可以根据身份标识来在键值对中查找,找到对应的value,然后就会给你返回一个登录过的页面(比如说我们登录csdn,cookie可以维持登录状态,否则你每次一打开一个csdn页面就要重新登录一次了)


HTTP响应

咱们来看看状态码~

状态码,是一个数字,这个数字描述了当前这次请求的“状态”(成功/失败以及失败的原因)

HTTP的状态是有明确的规定的,我们重要得认识那些经常出现的状态码

(1)200:表示访问成功

(2)404 Not found :你的请求路径出错了

你的请求中的url路径(表示要访问的服务器上的资源)写错了(想访问的资源,服务器没有),此时就会出现404

这里有一个问题:服务器会在内存上创建一个虚拟的文件资源对吧,这是程序员自定义的,是在写代码的时候构造好的,你要是输入的url路径不匹配,那还是会报错~

(3)403 Forbidden:访问被拒绝(客户端没有访问当前网页的权限)

然后你会发现404和403这两个状态码都是针对客户端的,客户端这边要是有问题就可能会放回4xx状态码,都是4开头的~

(4)500 Internal Server Error :表示服务器内部错误

也就是服务器代码执行过程中,出现异常

(5)504 Gateway Timeout :表示访问超时了

一般在双11的时候,淘宝的服务器就经常会瘫痪对吧,就是服务器请求量很大的时候,对于服务器的负载就很重

然后你会发现:500和504都是针对服务器的,如果服务器出现问题,会是5xx也就是5开头的状态码

(6)302:临时重定向

当我们有时候访问一个网站的时候,一点击,这个网站就会给我们跳转到另外一个网站,这就是重定向

有一天我们的旧网站打算不用了然后搞一个新网站,但是旧网站还有很多老用户,那么我们就可以搞一个重定向,当老用户访问旧网站的时候,会给他们跳转到新的网站

(7)301 Moved Permanently 永久重定向.

当浏览器收到这种响应时, 后续的请求都会被自动改成新的地址. 301 也是通过 Location 字段来表示要重定向到的新地址. 

状态码还有很多,这里就不一一列举了

下面做一个总结

上图就是不同状态码的基本性质


响应的报头也和请求的报头差不多

 以上加上之前的内容就是介绍了HTTP报文格式的重要内容了~

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络(第六弹) --- 与 HTTP 有关的八个问题

当我们用浏览器打开一个网页时基本上都是基于 HTTP 协议来进行传输的, 其实用 APP 来打开一个界面看到的 APP 中的内容大概率也是基于 HTTP 协议传输的, 因此 HTTP 对于网络而言的重要性不言而喻!   HTTP 这个协议在传输层主要是基于 TCP 来实现的, TCP 是传输字节流的协议, 只…

客户生命周期管理的五个最佳实践

每个优秀的客户服务人员都知道,业务不仅仅是完成一次性交易。优秀的企业与客户建立互惠互利的关系,相当于提高了客户的终身价值。换句话说,他们确保客户长时间留下来。本文将讨论客户生命周期管理的一些最佳实践。 1、与潜在客户和客户进行个…

业务数据分析-Excel必须掌握的7个操作技巧(二)

Excel必须掌握的7个操作技巧1、定位2、选择性粘贴3、快速填充4、查找与替换5、分列与合并6、去除重复项7、日期格式规范1、定位 如何快速定位到不连续的空值,填充为0 1.在任意空单元格里复制0 2.选中数据区域CtrlA 3.CtrlG 4.选择【定位条件】 5.选择【空值】 6.Ct…

如何使用Docker安装Kibana

(一)、概述 Kibana是一款开源的数据分析和可视化Web平台,用于对 Elasticsearch 索引中的数据进行搜索、查看、修改、添加和删除操作。 (二)、安装 1、Docker环境 视频教程:https://www.bilibili.com/vi…

ifconfig 查看 etcd 使用的 IP 是否存在

在该节点上 ping 其他节点 IP,测试是否 ping 通。 如果 ping 不通,执行步骤(1)(2),检查该节点网络、IP 配置、防火墙配置等。 如果 ping 通,执行步骤(3)确认…

ceph delete pool

参考: Pools — Ceph Documentation 前言:网上的写的乱七八糟不是你抄我就是我抄你 写的完全瞎扯 简直看不下去 官网截图: #准备 1.查看pool名称 ceph osd lspools #创建一个pool用于做测试/设置分类 ceph osd pool create pool-demo 6 6 cep…

供销社物资仓库管理系统-RFID供销社物资管理系统

1、建设背景 1.1项目目标 目前,许多仓储管理主要是基于相应规范的手工作业及电脑半自动化管理实现的,其弊病显而易见,即需要投入大量人力进行规范物品的放置、定期整理盘点以及出入库登记等工作,这使得仓储管理问题十分繁琐&…

Ubuntu下MySql数据库报1055报错

问题描述 在运行Ubuntu下数据库时执行group by 时报错,但在Windows下没有问题 报错内容 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘exercise_8.1.sc.student_id’ which is not functionally dependent…

十一、Mysql常见的show命令及information_schema.tables视图说明

Mysql常见的show命令及information_schema.tables视图说明十一、Mysql常见的show命令及information_schema.tables视图说明一、常见的show命令二、information_schema.tables视图说明1、information_schema.tables视图的结构说明2、information_schema.tables视图的案例说明3、…

【现代密码学原理实验】——CrypTool2与OpenSSL的使用(学习笔记)

📖 前言:本期我们将使用两个密码学常用工具来实现与分析前面所学的理论知识。 目录🕒 1. 工具介绍🕘 1.1 CrypTool 2🕘 1.2 OpenSSL🕤 1.2.1 常用指令语法🕤 1.2.2 Dgst 指令语法🕒…

c++/VS XP系统 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll解决方案

项目情况: 调用第三方网络库(hv库),在win7/8/10等系统都运行正常,在XP系统提示“ 无法定位程序输入点WSAPoll于动态链接库ws2_32.dll” 产生原因: 第三方网络库(hv库)使用到了wsap…

PDF转OFD ~java实现

PDF转OFD ~java实现 上篇文章记录了一下我第一次对接“超阅云”实现了ofd转pdf功能,想了想,还是再写一篇pdf转ofd的实现,其实对接的API基本一样,如果你是第一次看,建议先看看上一篇文章-“ofd转pdf” ———————…

Web前端——用CSS的常用样式制作一个炫酷的按钮

文章目录笔记:CSS的常用样式炫酷按钮效果实现笔记:CSS的常用样式 边框以及弧度样式 border-width:边框的线条宽度。 border-style:边框的样式,例如 solid实现 dotted 点线 dashed 虚线… border-color:边框…

Docker -- 01实践:使用Docker 快速安装Jenkins

使用Docker 快速安装Jenkins1. Docker install2. Jenkins install3. User Guide1.1 Big Data -- Postgres3. User Guide1.1 Big Data -- PostgresJenkins Website: https://www.jenkins.io/. 1. Docker install Docker 安装和基础知识 Docker install: https://blog.csdn.net/w…

TS学习笔记 类型标签 联合类型 枚举类型 泛型 类型别名

个人理解总结: js天生没有编译和类型检查的束缚 灵活好上手 结合项目使用时也可以做到热更新提升开发体验。 (需要编译的JAVA以前开发DEBUG很麻烦但现在有了容器编排技术,也可以实现类似效果) TS是JS的超集,添加了类型标注,不能直…

vulnhub靶机corrosion1

靶机下载地址:Corrosion: 1 ~ VulnHub Kail IP:192.168.174.128 Corrosion ip:192.168.174.133 思路: 靶机端口扫描,ssh日志反弹shell,linpeas脚本扫描,备份文件发现密码,爆破zi…

医疗器械设计时需要注意的事项

伴随着医疗器械的增加,经市场评估的医疗器械产品也趋向多样化,医疗器械设计也非常重要,下面小编就带大家了解一下开展医疗器械设计时需要注意什么? 说到医疗器械,相信大家都很熟悉。医疗器械有很多种,包括一类医疗器械…

【C++位图】1. 快速查找某个数据是否在一个集合中 2. 排序(全部插入,遍历一遍) 3. 求两个集合的交集、并集等

目录 问题:给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中。 2.简单实现一个位图 3.如何利用位图求两个集合的交集、并集 问题:给40亿个不重复的无符号整数,没排过序…

Golang入门笔记(14)—— 错误处理

来一个除以0的异常,代码如下: package mainimport "fmt"func main() {fmt.Println("before")divNum()fmt.Println("after") }func divNum() {num1 : 10num2 : 0result : num1 / num2fmt.Println(result) } console 异常&…

GitHub 昙花一现:《Spring Boot 趣味实战》神作开源几分钟被下架

又来给大家分享好书了:刘水镜老师的 Spring Boot 趣味实战,网上依旧是没有开源版本!文末送上 刘水镜是谁? 十余年持续技术文章输出,CSDN 博客专家。2020 年《 Spring Boot 趣味私房课》专栏上线,凭借风趣…