服务器端具有会话管理的应用程序


Application with session management in the server side

我需要使用iOS客户端创建一个基于服务器的(php)应用程序,该客户端具有身份验证"登录"机制,但我不知道iOS中的会话。我的应用程序需要登录我的网站(基于PHP的网站)才能获取数据。我不知道iPhone客户端的会话是否保持在服务器中?

详细信息:

在将登录请求从iPhone客户端发送到我的网络应用程序后,我认为在我的网络程序中创建了一个会话(对吧?),我的下一个请求呢?我可以访问为第一个请求创建的同一会话吗。。换句话说:我可以在登录后iOS客户端发送的每个请求中共享网络会话(在服务器中)中的数据吗?

会话是一个服务器端概念-客户端没有会话。

通常情况下,服务器会在您登录后在响应标头中设置一个cookie,该cookie包含会话ID,以便在后续请求中,服务器知道客户端正在使用该会话,因为它与cookie匹配。

Cookie在iOS上自动工作,所以你根本不需要做任何事情。NSURLRequest有一个默认为YES的属性HTTPShouldHandleCookies,所以默认情况下一切都应该正常。

如果它不起作用(或者你只是想看看发生了什么),你可以使用NSHTTPCookieStorage API访问iOS中的cookie。看看[NSHTTPCookieStorage sharedHTTPCookieStorage],它的工作原理有点像NSDictionary。这就是您登录后应该设置会话cookie的位置。