When does Rails create a session object?

I am trying to simulate multiple users accessing my app from the same development machine.

To do so, I am trying to understand when Rails creates a session object and what triggers this.

My tests indicate that an empty session object is created as soon as the server receives a HTTP request from a browser.

If I open up another browser session on my development machine and issue another HTTP request, no new session object is created - Rails reuses the existing one.

Why is this? Does Rails look at some specific information in the HTTP request headers when determining whether or not to create a new session object?

I hope this makes sense.

it has to do with your browser.

when a session is created, a cookie is set in your browser for the domain your are visiting. this cookie contains the host, path, name and value. for example, if i visit localhost:3000/ (my development machine), i get a cookie

host: locahost path: / name: _session_id content: 1b87c8ad2bc274d96c7efb8a34ca5d3d

cookies exist at the browser level, so if you open a new browser tab/window, and access the same page a second time, this cookie data is sent as part of the request since it already exists for the domain.

Cookie: _session_id=1b87c8ad2bc274d96c7efb8a34ca5d3d

and since you already have a cookie with the session id, and your app has a session stored with that id, you won't get a new one.

you have some options.

1) test your rails app using integration testing to simulate multiple users.

2) use 2 different machines.

3) use 2 different browsers (ex: firefox and opera) from the same machine.