关于浏览器访问服务器 sessionid的东西

2024-06-19 02:32

本文主要是介绍关于浏览器访问服务器 sessionid的东西,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

昨天快下班了,公司的小美女开发翟L,问了一个问题:“保存sessionid的cookie是什么时候创建的??”。

我想了半天:

知道session的用法,以及session的生命周期(第一次调用,requset.getsession(true)时创建);

也知道cookie的用法;

也知道session其实是基于cookie的;

但是“保存sessionid的cookie是什么时候创建的??”,有个现象:浏览器请求一个服务器资源,第一次请求后一般情况下,浏览器都能拿到一个保存有jsessionid的cookie,但是我们的代码里面,可并没有req.getsession()的语句,更别提搞个cookie,把sessionid存进去。


昨晚我试了下:

1.直接请求一个url,直接返回一个html页面,监控sessionid。(发现是有的)



2.直接请求一个url, 相应的方法里面有 req.getsession(false);(意思是如果有session,就返回;如果没有就返回null)

  发现:session是有的。(在我们调用 req.getsession前就有了)



目前的推测:  浏览器和服务器建立,会创建session,把sessionid保存在cookie中,返给浏览器。但是这些不需要我们程序员去实现,是服务器(tomcat等帮我们做的)。

-------------------------------------------

还是回到翟的问题:“保存sessionid的cookie是什么时候创建的??” 

答:是浏览器第一次访问服务器时创建的,可能在服务器内部是这样的:第一次访问,调用req.getsession(true), 第一次访问没有session,所以去新建一个,然后new Cookie,将 sessionid存进去。(具体的源码没有找到)

-----------

其他session和cookie的相关知识:

https://blog.csdn.net/qq_33251859/article/details/77481868

https://www.cnblogs.com/woshimrf/p/5317776.html

https://blog.csdn.net/xihuangwutong/article/details/9819033 

这篇关于关于浏览器访问服务器 sessionid的东西的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1073753

相关文章

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

CentOS 7部署主域名服务器 DNS的方法

《CentOS7部署主域名服务器DNS的方法》文章详细介绍了在CentOS7上部署主域名服务器DNS的步骤,包括安装BIND服务、配置DNS服务、添加域名区域、创建区域文件、配置反向解析、检查配置... 目录1. 安装 BIND 服务和工具2.  配置 BIND 服务3 . 添加你的域名区域配置4.创建区域

使用DrissionPage控制360浏览器的完美解决方案

《使用DrissionPage控制360浏览器的完美解决方案》在网页自动化领域,经常遇到需要保持登录状态、保留Cookie等场景,今天要分享的方案可以完美解决这个问题:使用DrissionPage直接... 目录完整代码引言为什么要使用已有用户数据?核心代码实现1. 导入必要模块2. 关键配置(重点!)3.

Windows Server服务器上配置FileZilla后,FTP连接不上?

《WindowsServer服务器上配置FileZilla后,FTP连接不上?》WindowsServer服务器上配置FileZilla后,FTP连接错误和操作超时的问题,应该如何解决?首先,通过... 目录在Windohttp://www.chinasem.cnws防火墙开启的情况下,遇到的错误如下:无法与

使用Dify访问mysql数据库详细代码示例

《使用Dify访问mysql数据库详细代码示例》:本文主要介绍使用Dify访问mysql数据库的相关资料,并详细讲解了如何在本地搭建数据库访问服务,使用ngrok暴露到公网,并创建知识库、数据库访... 1、在本地搭建数据库访问的服务,并使用ngrok暴露到公网。#sql_tools.pyfrom

Javascript访问Promise对象返回值的操作方法

《Javascript访问Promise对象返回值的操作方法》这篇文章介绍了如何在JavaScript中使用Promise对象来处理异步操作,通过使用fetch()方法和Promise对象,我们可以从... 目录在Javascript中,什么是Promise1- then() 链式操作2- 在之后的代码中使

Windows server服务器使用blat命令行发送邮件

《Windowsserver服务器使用blat命令行发送邮件》在linux平台的命令行下可以使用mail命令来发送邮件,windows平台没有内置的命令,但可以使用开源的blat,其官方主页为ht... 目录下载blatBAT命令行示例备注总结在linux平台的命令行下可以使用mail命令来发送邮件,Win

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

nginx配置多域名共用服务器80端口

《nginx配置多域名共用服务器80端口》本文主要介绍了配置Nginx.conf文件,使得同一台服务器上的服务程序能够根据域名分发到相应的端口进行处理,从而实现用户通过abc.com或xyz.com直... 多个域名,比如两个域名,这两个域名其实共用一台服务器(意味着域名解析到同一个IP),一个域名为abc