Username/Email
Password
login
Remember Me
Trouble logging in?
header
Solutions to your goals...
sign in
my journal
members admin +
my account
target accounts
tech view
social view
community +
friends
following
day plan
share
create
store
manage
track
Title: Cookie和Session
Username:
Required field cannot be left blank.
User name already exists, please choose another one.
First Name:
Required field cannot be left blank.
Last Name:
Required field cannot be left blank.
Password:
Required field cannot be left blank.
Not less than 6 characters
Re-type Password:
The two passwords are not consistent.
Email:
Required field cannot be left blank.
Email format is invalid.
Another user has already registered with that email address.
Re-type Email:
The two emails are not consistent.
create free account
add to my library
add to my day plan
share
Goal: this task will create the safety about the goal to Learning PHP
Dashu Huang published this Operative Task at isodoit.com under Education | Engineering and Cuisine | Brunch | European Cuisine | Northern European Cuisine | Cuisines of the British Isles | British Cuisine | Anglo-Indian cuisine
Doers: 3 | Form: Operative Task | Phase: Conclusion | Type: Pre-Event | Level: 3 | Code:
Start: Nov 17, 2019 | When: Day 1 | Duration: 5 Minute(s)
Steps:
  • session是在服务器端保持用户会话数据的一种方法,对应的cookie是在客户端保持用户数据。HTTP协议是一种无状态协议,服务器响应完之后就失去了与浏览器的联系,最早,Netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那么服务器是如何记住众多用户的会话数据呢?
    首先要将客户端和服务器端建立一一联系,每个客户端都得有一个唯一标识,这样服务器才能识别出来。建议唯一标识的方法有两种:cookie或者通过GET方式指定。默认配置的PHP使用session的时会建立一个名叫”PHPSESSID”的cookie(可以通过php.ini修改session.name值指定),
    response:
  • 如果客户端禁用cookie,你也可以指定通过GET方式把session id传到服务器(修改php.ini中session.use_trans_sid等参数)。<a href=”p.php?<?php print session_name() ?>=<?php print session_id() ?>”>xxx</a>,也可以通过POST来传递session值.
    response:
  • 客户端执行程序请求 服务器发回请求结果 并且生成一个cookie给客户端 所以 第二次刷新的时候 才会有cookie的出现
    response:
  • session是保存在内存中 跟进程是同时存在的 会话cookie 但是此时服务器端还保存有session文件 需要设置时间来删除session文件
    response:
  • 我们查看服务器端session.save_path目录会发现很多类似sess_vv9lpgf0nmkurgvkba1vbvj915这样的文件,这个其实就是session id “vv9lpgf0nmkurgvkba1vbvj915〃对应的数据。真相就在这里,客户端将session id传递到服务器,服务器根据session id找到对应的文件,读取的时候对文件内容进行反序列化就得到session的值,保存的时候先序列化再写入。
    response:
  • Cookie在客户端保存状态,Session在服务器端保存状态,但由于在服务器端保存状态的时候客户端也需要有个标识,所以session也需要借助cookie来起到保存标识位的作用,

    Cookie包括名字,值,域,路径,过期时间。路径和域构成Cookie的作用范围,如果Cookie不设置过期时间则这个Cookie仅仅在浏览器进程存在时有效,关闭时销毁,如果设置了过期时间则Cookie保存着硬盘上可以供各各浏览器共享。

    Session存储在服务器端,服务器用一种散列表类型的结构存储信息,当建立连接的时候服务器首先会搜索有没有存储的Session ID, 如果没有则建立一个新的session并将Session Id返回给客户端,客户端可以选择使用Cookie存储Session id也可以采用其它的办法如将服务器的Session ID附在URL上。

    两者区别。
    (1) Cookie存储在本地,而Session存储在服务器端
    (2) Cookie不安全,容易被欺骗,Session相对安全
    (3) Session在服务器端,访问多了会影响服务器的性能。
    (4) Cookie大小有限制,为3K
    (5) 多台服务器共享Session可以尝试把Session存储在memcache中
    response:
save and continue
messages (0)
description
past results
(No Message)
© 2019 Furious Integrated Training Systems, Inc. All rights reserved.