wordpress登录后发生了什么?
现在,我登录wordpress,然后重新刷新刚才的页面,发现可以编辑了。
请问,这个过程中,发生了哪些事情呢?
回复内容:
不登录wordpress的时候,打开一个网页,这个网页不可以编辑。
现在,我登录wordpress,然后重新刷新刚才的页面,发现可以编辑了。
请问,这个过程中,发生了哪些事情呢?
你输对了用户名和密码之后,服务器会在你的浏览器里放一个标识,接下来你再访问的时候服务器就根据这个标识知道『噢!你就是输对了密码的那个人!』,因此就给你看能编辑的页面。
补充:
噗…第一次见到有不太懂还要求多用术语的,好吧
wordpress根据什么知道你能不能编辑?
根据你的登录状态。
它怎么知道你登录了没有?
你登录的时候,登录表单发送给服务端程序,程序从数据库取出用户并验证密码,正确的话就将用户的id放入session
中,你每次访问的时候因为有session在,服务端就知道你是登录过的用户,拥有编辑的权限。
session是怎么工作的?http
协议是无连接、无状态的(websocket
不算),你每次请求
一个地址,服务器响应
结束后,整个http服务过程就结束了,你下次再访问,服务器并不知道你是不是刚才那个人。那么为什么session知道呢?
session是服务端程序维护的一个数据结构,用于区别登录成功的用户。当你登录成功后,服务器会在你的浏览器中放一个cookie
,其中记录了一个sessionid
,当你再次访问,浏览器会把这个cookie携带给服务器,服务端程序根据其中的sessionid,就知道哪个session是为你打开的,就可以从其中为你存取数据了。
就好像,服务端为每个用户开了一个保险柜,服务端虽然不知道来开柜子的人是谁,但只要他带着钥匙,就为他开对应的保险箱。
cookie是什么?
cookie是在请求-响应的过程中,服务器存放在浏览器中的一些数据,他们很短小。cookie上记录了他们是在访问哪个域名时被存放下来的,因此在再次访问这个域名时,这个域名下的cookie会被携带发送给服务器,服务器就能读取它放在浏览器里的数据了。
简单来说就是这样
根据登录状态判断是否可以有编辑权限
既然楼主是在PHP下面问的我稍微详细点,通用的基于cookie的session:
1、第一次打开一个一般的PHP程序页面的时候,服务器端会生成一个标识(session_start);
2、然后服务器通过http请求中的set-cookie设置到你的浏览器中,一般是PHPSESSID;
3、再次向服务器发送请求的时候,你的浏览器都会带上这个cookie信息,服务器通过这个cookie信息读取session;
4、登录的时候,服务器会通过用户名,在数据库中找到你的用户信息,保存在session中;
5、之后其他所有的请求服务器端都能通过session读到你的用户信息——会话保持住了;
上一篇: php 获取客户端ip