当前位置: 首页 > news >正文

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并释放内存块

http://www.lryc.cn/news/584591.html

相关文章:

  • [架构之美]虚拟机Ubuntu密码重置
  • nmap扫描指定网段中指定开放端口的主机(IP,mac地址)
  • Kafka的无消息丢失配置怎么实现
  • 删除k8s安装残留
  • 「Java案例」求PI的值
  • 告别卡顿与慢响应!现代 Web 应用性能优化:从前端渲染到后端算法的全面提速指南
  • 快速搭建服务器,fetch请求从服务器获取数据
  • 搭建自动化工作流:探寻解放双手的有效方案(1)
  • RK3568项目(八)--linux驱动开发之基础外设(上)
  • Linux驱动开发(platform 设备驱动)
  • ARM单片机滴答定时器理解与应用(二)(详细解析)(完)
  • 多线程交替打印
  • 技术学习_检索增强生成(RAG)
  • 【个人笔记】负载均衡
  • 微服务项目远程调用时的负载均衡是如何实现的?
  • Prompt提示词的主要类型和核心原则
  • 【WEB】Polar靶场 Day8 详细笔记
  • Docker 镜像加速站汇总与使用指南
  • SpringBoot系列—MyBatis(xml使用)
  • Flink自定义函数
  • 一个编辑功能所引发的一场知识探索学习之旅(JavaScript、HTML)
  • Android 插件化实现原理详解
  • 虚拟储能与分布式光伏协同优化:新型电力系统的灵活性解决方案
  • Datawhale AI 夏令营:基于带货视频评论的用户洞察挑战赛 Notebook(下篇)
  • Chromium 引擎启用 Skia Graphite后性能飙升
  • 【TGRS 2025】新型:残差Haar离散小波变换下采样,即插即用!
  • 从零构建MVVM框架:深入解析前端数据绑定原理
  • 深入理解 Linux 中的 stat 函数与文件属性操作
  • NGINX系统基于PHP部署应用
  • 开发需要写单元测试吗?