I am not sure if this is the right place to ask but I would like to make
Safari developer aware of a problem in most web applications.
The web is intended to be stateless but web application naturally
require stateful behaviour. The option to append the state (for example
a shopping cart) as request parameter to every request is not practical.
The common solution is to create a server session and to store the
session ID as cookie or request parameter on the client.
The problem with this approach is that cookies are shared across all
tabulators and as a consequence they share the same session. If I open
an edit dialog for product foo in tabulator 1 and an edit dialog for
product bar in tabulator 2 and submit changes in tabulator 1, I will
actually change product bar instead of the original in tab 1 selected 'foo'.
A solution to this problem could be a tabulator id, which is a random id
generated for every tabulator and passed as request header. The web
developer can now safely allow to have multiple windows on the same
application by slicing his session into tabulator contexts, to store
data per tabulator id.
I described this in more details in my blog.
I would appreciate your feedback on this idea. In case this was the
wrong place to ask Safari developers, I apologize.
Best Regards / Viele Gruesse
webkit-dev mailing list