Web学习笔记2

Web会话机制

1、查看Http的请求头和响应头

打开浏览器,输入B站网址,按F12打开浏览器开发者模式,找到post请求:

基本信息包括:

scheme:表示协议类型

Host:表示请求的主机地址

地址:表示请求主机的IP地址和端口号,上图端口号为443

状态:表示请求主机的状态码,上图为200,表示成功处理

版本:协议版本号

referer策略:表示过滤referer报头的规则

请求头信息包括:

请求头包括:

Accept:表示支持的文件类型,若Accept为*/*,则代表浏览器支持各种文件

Accept-encoding:表示浏览器支持的压缩格式

Accept-language:表示浏览器支持的语言,zn-cn;Zh;q=0.8代表支持中文

cookie:表示cookie参数

connection:表示连接状态,"keep-alive"表示浏览器与服务器保持连接

refer:表示消息主体大小

user-Agent:表示客户端浏览器和操作系统相关信息

响应头包括:

access-control-allow-credentials:表示是否可以将请求的响应暴露给页面,返回true表示可以,佛则为不可以

access-control-allow-origin:表示指定该资源是否允许给定的oringin共享

content-encoding:对当前实体消息应用的编码类型

content-type:表示资源的多用途互联网邮件拓展类型

date:表示当前格林尼治时间

server:表示请求的源服务器用到的软件相关信息

2、Cookie

Cookie和Session都是用于维护客户端和服务器会话的技术,Cookie存储在客户端,Session存储在服务端。Cookie是浏览器保存的所有访问Web应用的相关信息的小型文本文件,由服务器以响应头的形式发送给客户端,客户端自动保存,之后每次客户端向服务器发送请求时都会携带Cookie,这样服务器可以根据Cookie识别不同的用户

一个Cookie只能表示一种信息,其各个属性包括(一个cookie至少有<Name><Value>两个信息):

<Name><Value>[path][Domain][Expires/Max-time][Secure][Httponly]

Name:Cookie名称,不区分大小写

Value:Cookie对应的值

Path:可以访问该cookie的页面路径,浏览器根据path向指定域中匹配的路径发送cookie

Domain:可以访问该cookie的域名,域名可以选择包含或不包含子域

Expires/Max-time:失效时间,浏览器停止向服务器发送cookie的时间,若不设置,浏览器关闭后cookie自动失效

Secure:安全设置,设置cookie是否只能通过https协议传输

Httponly:若为true则只能在http的请求头里包含cookie,不能通过documents.cookie来访问

cookie的工作原理为:

(1)创建cookie:当用户第一次访问一个网站时,网站服务器会为用户产生唯一识别码,并创建一个cookie对象,并在响应头里的set-cookie设置为这个对象,创建的cookie默认在浏览器缓存中,若设置了Expires/Max-time则会存放在浏览器对应的磁盘上

(2)存储cookie:浏览器在接收到响应头时,会根据set-cookie的参数生成cookie,并保存在客户端,下次再连接这个网站则在请求头中一并发送

(3)发送cookie:若用户再次访问该网站,浏览器会在存储中寻找有无对应的cookie,若有则包含在请求头中一并发出

(4)读取cookie:服务器接受到请求后读取响应头里的cookie,cookie中保存着识别用户的相关信息(例如有些网站在登录过一遍时第二次无需登录是因为cookie中有用户的账号密码)

3、Session

Session就是保存在服务器上的用户信息形式,Session机制就是当服务器接收到Cookie时,通过Session检查有无对应的用户信息,Session的工作原理为:

(1)创建Session:用户第一次向服务器传输请求时,服务器生成session对象,该对象有唯一的session_id,并开辟内存块,session_id通过响应头发送给客户

(2)存储Session:客户收到session_id后会将其存储在cookie中,并在下次请求时将这个id带在cookie中发送给服务器

(3)发送Session

(4)读取Session:当服务器接收到这个id时,会判断session中是否存在这个id,若有,则找到与这个id对应的文件;若无,则创建一个新的session_id。session_id若超时或被关闭,服务器则销毁这个session并释放内存块

相关推荐
努力的小帅4 分钟前
STM32单片机_3
stm32·单片机·嵌入式硬件·学习·stm32c8t6
Jet450525 分钟前
第100+43步 ChatGPT学习:R语言实现特征选择曲线图
学习·chatgpt·r语言
xiyuping2428 分钟前
ROS1学习第二弹
学习·机器人
lxiaoj11140 分钟前
Python文件操作笔记
笔记·python
典孝赢麻崩乐急1 小时前
Java学习---JVM(1)
java·jvm·学习
半导体守望者1 小时前
ADVANTEST R4131 SPECTRUM ANALYZER 光谱分析仪
经验分享·笔记·功能测试·自动化·制造
啊我不会诶3 小时前
倍增法和ST算法 个人学习笔记&代码
笔记·学习·算法
逼子格3 小时前
振荡电路Multisim电路仿真实验汇总——硬件工程师笔记
笔记·嵌入式硬件·硬件工程·硬件工程师·硬件工程师真题·multisim电路仿真·震荡电流
aha-凯心3 小时前
前端学习 vben 之 axios interceptors
前端·学习