首先我们需要思考,很多问题。

1.当很多人访问统一网络服务器,服务器如何来区分不同的用户呢?

 答:sessionid,sessionid保证了浏览器和服务器唯一性的通信凭证号码,session保存在服务器上,
sessionid保存在浏览器等客户端,服务器根据浏览器发送来的sessionid作为一个唯一的key值找到对应的用户,
所以说sessionid的唯一性用来区别和查询用户信息,因此sessionid的作用不言而喻。

2.我们经常说浏览器关闭后session就会被清除,那session由生命周期么?

答:有的,这个是服务器的配置,浏览器关闭只是把sessionid给清除了,所以在此打开浏览器并请求服务,
你的登录状态无法找到,由此你需要重新登录。
一般情况下,浏览器如果不刷新或者不重新请求的话,服务器一般会缓存session数据20分钟左右。

3.cookie会被缓存,sessionid保存在cookie中,sessionid一定会被清除么?

答:不一定,这个需要服务器cookie的设置了,但总体而言,因安全性考量,最好不要缓存sessionid

4.cookie保存用户状态时需要保存sessionid么?

答:不需要,保存user_id或者其他token即可

5.cookie是如何发送到服务器的?

答:使用http请求头,浏览器进行了封装,但在一般网络编程时可以加上
如GET / HTTP/1.1
Host: www.guancha.cn
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2062.124 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: pgv_pvi=9956446208; pbm_total_match_cookie_281589=1; has_js=1; Hm_lvt_8ab18ec6e3ee89210917ef2c8572b30e=1414852570,1414879794,1414884316,1414901793; Hm_lpvt_8ab18ec6e3ee89210917ef2c8572b30e=1414901793

6.上面的例子中没有sessionid么?

 答:是的,没有,sessionid只是一个代称,这个变量名可以改变,比如在php中使用phpsessionid,
在java web中jsessionid

7.登录前有sessionid,登录后需要重新设置么?

答:依情况而定,如果安全性要求较高的,可以重新生成一个sessionid,
另外必须先销毁之前的一个sessionid

8.sessionid生成后如何发送到浏览器?

答:默认情况下,服务器会挂载响应消息 set-Cookie来指示浏览器更新sessionid,不需要手动更新如:
HTTP/1.x 200 OK
X-Powered-By: PHP/5.2.1
Set-Cookie: TestCookie=something from somewhere; path=/
Expires: Thu, 19 Nov 2007 18:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-type: text/html //如果是按照第7问生成的sessionid,这个也不需要手动发送,当然也可以手动发送

转载地址:https://my.oschina.net/ososchina/blog/339918

网络请求中的cookie与set-Cookie的交互模式和作用相关推荐

  1. uni-app——一种通过Nginx反向代理处理302重定向请求解决网络请求中无法获取Cookie的解决方案

    问题描述 小程序中不会自动保存和发送Cookie 使用插件(https://uniapp.dcloud.io/api/request/request)方法不能解决302重定向情况下获取Cookie 小 ...

  2. 网络请求中常见的加密机制和加密算法理解 流量加密

    请求安全性: 服务器端在接收到请求的时候,要主动鉴别该请求是否有效,是否可接受. token:已登陆用户的识别码 解决的问题:用户调用接口时,不用每次都带上用户名和密码,避免了频繁在网络中传输密码被截 ...

  3. 网络请求中常见的加密机制和加密算法理解

    请求安全性: 服务器端在接收到请求的时候,要主动鉴别该请求是否有效,是否可接受. token:已登陆用户的识别码 解决的问题:用户调用接口时,不用每次都带上用户名和密码,避免了频繁在网络中传输密码被截 ...

  4. Android网络请求中的回调

    需求:高效地向服务器请求数据并解析. 涉及的主要工具类: HttpManager 大哥类.最重要的类,封装了GET和POST方法.所有的参数都要经过这个类发送给服务器. HttpRequestList ...

  5. android中网络请求中页面关闭了会怎么样

    这是我在面试的时候,别人问的,其实 ,在实际开发中,并没有怎么遇到: 如果activity中开启了一个网络请求,正在请求中的时候,activity关闭了,那网络请求会怎么样? 因为之前没有遇到过这个问 ...

  6. swift 网络请求中含有特殊字符的解决方案

    在网络请求时,URL出现中文或特殊字符时会造成请求失败,通常可使用  addingPercentEncoding(withAllowedCharacters: CharacterSet) 方法进行解决 ...

  7. flutter 解耦框架BLoC在网络请求中的应用

    BLoC BLoC表示为业务逻辑组件 (Business Logic Component),由谷歌在2018的 DartConf 首次提出------其诞生可以说是为了解耦. 在了解该框架之前需要了解 ...

  8. Android中使用Volley开源库进行Http网络请求(GET方式)

    在之前的Http网络请求中,我们一般使用输入流以及缓冲区的方式进行访问,然后从服务器获取返回的数据.代码行数近20行,而且网络操作是放在Thread线程中进行的,对于Java或者Android的线程还 ...

  9. 网络编程-JavaScript中发送网络请求汇总

    文章目录 1.前后端分离优势 2.HTTP协议的解析 2.1 HTTP的介绍 2.2 HTTP的组成 2.3 HTTP的版本 2.4 HTTP请求方式 2.5 HTTP请求头字段 2.6 HTTP响应 ...

最新文章

  1. 管道、重定向、vim文本编辑器
  2. LDialog基于DialogFragment封装的库,也许是一个Nice的库
  3. 如何看懂一个深度学习的项目代码
  4. mysql的学习总结
  5. Linux新手入门:通过chmod改变文件权限--转
  6. echart 高度 不用 不撑满_高度、长度可调节的输送机,能延伸至货车内部,堪称装卸神器...
  7. mysql 创建用户 create user_mysql创建用户并赋予用户权限详细操作教程
  8. 设计一个按优先数调度算法实现处理器调度的程序_计算机中的程序都是怎么运行的,来深入了解一下吧...
  9. java http setheader_response.setHeader各种用法详解
  10. 类与类关系的UML图与代码表现
  11. c语言删除结点,C语言在链表中删除结点
  12. 微软发现已遭在野利用的 SolarWinds 新0day
  13. Linux下的socket网络编程
  14. 高分一号二号PMS数据处理
  15. java文字手写识别_【手写文字识别】-JavaAPI示例代码
  16. CentOS 8.5下安装R语言经验总结
  17. 将项目提交到码云时,异常: remote: [31mIncorrect username or password ( access token )[0m
  18. 微博尾巴不加android,! android应用——装逼神器《微博尾》
  19. 莫尔斯代码的c语言编码,c语言编写莫尔斯码,帮帮忙啊,速回
  20. ESP8266实战(一)--wifi时钟的制作

热门文章

  1. Mybatis中mapper文件中的两层循环
  2. (解题报告)L1-032 Left-pad (20分)——15行代码AC
  3. 【传智播客】Javaweb程序设计任务教程 黑马程序员 第四章 课后答案
  4. flask创建mysql表_MySQL表不是使用Flask和PyMySQL创建的
  5. 实验详解——parted单磁盘分区并进行配额
  6. windows7 docker mysql_DOCKER windows 7 详细安装教程
  7. python中乘法和除法_python – NumPy的性能:uint8对比浮动和乘法与除法?
  8. 网页游戏怎么修改数据_一周网页游戏开服数据总结(9.1-9.7)
  9. Java如何校验中文乱码_java如何判断是否中文乱码
  10. 手工收集awr报告_oracle手工生成AWR报告方法记录