Kri*_*ofe 5 ip dns url session domain-name
我想知道会话具体是什么?这不仅限于一种语言.贝娄只是以php为例.
我使用php会话,当我使用我的网站域名时效果很好.要在Windows操作系统上的本地vmvare ubuntu中测试网站,我会更改Windows的主机以使DNS成为我的本地IP.在测试本地时,我使用域名,它也很好用.但是当我将浏览器中的URL更改为Ip时,会话将丢失.
你可能会混淆我为什么这样做,因为我想在我的Android设备上测试页面,因为我无法在没有android root的情况下更改我的android设备的hosts文件,所以我必须使用ip.
您可能也会混淆我为什么不一直使用ip?因为我在我的网络应用程序中使用第三次打开登录.第三个打开登录桅杆使用域名作为重定向回复网址,因此当我进入时,它将重定向到域名格式的网址.
为什么php会话在域名和ip时是一样的?
要确保php会话与域名和ip不一样?我也试过我的管理系统,上面是用户系统.
我也尝试了我的管理系统,我可以使用ip一路登录.但是当我将ip更改为url中的域名时,会话也会丢失.
由于您提到PHP,我将包含来自PHP手册的信息.我相信其他语言表现相似.
在服务器中,会话特定于cookie.从PHP手册:
会话ID通常通过会话cookie发送到浏览器,ID用于检索现有会话数据.缺少ID或会话cookie使PHP知道创建新会话,并生成新的会话ID.
在用户代理(客户端,通常是浏览器)中,cookie特定于域和路径.从RFC6265,第4.1.2.3节:
Domain属性指定将向其发送cookie的主机.例如,如果Domain属性的值为"example.com",则在向example.com,www.example.com和www.corp.example发出HTTP请求时,用户代理将在Cookie标头中包含cookie. COM.
第4.1.2.4节:
仅当request-uri的路径部分与cookie的Path属性匹配(或是其子目录)时,用户代理才会将cookie包含在HTTP请求中,其中%x2F("/")字符被解释为目录分隔符.
因此,例如,如果您从域名来回移动到IP地址,example.com并且12.34.56.78,example.com如果您稍后发出请求12.34.56.78,则用户代理将不会发回服务器创建的会话cookie ,即使两者都是同一台服务器 对于后一个请求,因为服务器没有看到会话cookie,所以会创建一个新会话并发送一个新cookie.这就是为什么同时使用域名和IP地址将使用单独的会话.
如果在使用域名和IP地址时需要使用相同的会话,则必须在请求之间保留会话ID.常见的方法是在查询字符串中传递会话ID.事实上,PHP会话管理也可以配置为使用这种方法,但我从不需要使用它,所以我不能告诉你这是怎么回事.
继续我的示例,您可以将此用于后续请求:
http://12.34.56.78/?sessionId=abcdef0123456789
Run Code Online (Sandbox Code Playgroud)
abcdef0123456789示例会话ID 在哪里.
在PHP代码中,在调用之前设置会话ID session_start().示例代码:
if(isset($_GET['sessionId']))
session_id($_GET['sessionId']);
@session_start();
Run Code Online (Sandbox Code Playgroud)
当然,你不必使用sessionId.你可以使用foobar或其他任何东西.您也可以每天甚至每小时更改它以防止会话劫持.
更新:要使用foobar,请将PHP代码修改为:
if(isset($_GET['foobar']))
session_id($_GET['foobar']);
@session_start();
Run Code Online (Sandbox Code Playgroud)
使用该代码,您可以像这样传递会话ID:
http://12.34.56.78/?foobar=abcdef0123456789
Run Code Online (Sandbox Code Playgroud)
如果你想使用xyz,PHP代码将是:
if(isset($_GET['xyz']))
session_id($_GET['xyz']);
@session_start();
Run Code Online (Sandbox Code Playgroud)
您可以像这样传递会话ID:
http://12.34.56.78/?xyz=abcdef0123456789
Run Code Online (Sandbox Code Playgroud)
关键是,这完全取决于你.
| 归档时间: |
|
| 查看次数: |
1759 次 |
| 最近记录: |