where does session save?
The session data that you read and write using $_SESSION
is stored on server side, usually in text files in a temporary directory. They can not be accessed from outside.
The thing connecting a session to a client browser is the session ID, which is usually stored in a cookie (see the comments for exceptions to that rule). This ID is, and should be, the only thing about your session that is stored on client side.
If you delete the cookie in the browser, the connection to that session is lost, even if the file on the server continues to exist for some time.
The session.save_path
variable influences the location on the server where the session data is stored. If you are not the server's administrator, it is usually not necessary to change it.
Where are $_SESSION variables stored?
The location of the $_SESSION
variable storage is determined by PHP's session.save_path
configuration. Usually this is /tmp
on a Linux/Unix system. Use the phpinfo()
function to view your particular settings if not 100% sure by creating a file with this content in the DocumentRoot
of your domain:
<?php
phpinfo();
?>
Here is the link to the PHP documentation on this configuration setting:
http://php.net/manual/en/session.configuration.php#ini.session.save-path
Is session stored in client side or server side
In ASP.NET; you have a Session cookie. This cookie is used to identify which session is yours; but doesn't actually contain the session information.
By default, ASP.NET will store session information in memory inside of the worker process (InProc), typically w3wp.exe
. There are other modes for storing session, such as Out of Proc and a SQL Server.
ASP.NET by default uses a cookie; but can be configured to be "cookieless" if you really need it; which instead stores your Session ID in the URL itself. This typically has several disadvantages; such as maintence of links become difficult, people bookmarking URLs with expired session IDs (so you need to handle expired session IDs, etc). Most modern phones, even non-smart phones, support cookies. Older phones may not. Whether you need to support cookieless sessions is up to you.
If your URL looked like this:
http://www.example.com/page.aspx
A cookieless URL would look like this:
http://www.example.com/(S(lit3py55t21z5v55vlm25s55))/page.aspx
Where lit3py55t21z5v55vlm25s55
is a session ID.
You can learn more about ASP.NET's session state here
Where is session files stored in Yii2?
The default session save path is '/tmp'
. link
This path is accessible via the getSavePath()
method in the session class file(yii2)
- @property string $savePath The current session save path, defaults to '/tmp'.
For example, in xampp software (localhost) go to the following folder(default)
myDrive:\xampp\tmp // The drive where the software is installed
It is taken by default through the session_save_path method. Which depends on the settings of the php.ini
file. In session.save_path="...\tmp"
But you can also configure it through the .htaccess
file
To adjust Yii2, you can do the following. In the config web file
'components' => [
'session' => [
'name' => '_Session',
'savePath' => dirname(__DIR__) .'/sessions'
],
To save in the database(yii\web\DbSession) refer to this link.
Example:
'session' => [
'class' => 'yii\web\DbSession',
'name' => 'mySession',
// 'db' => 'mydb', // the application component ID of the DB connection. Defaults to 'db'.
// 'sessionTable' => 'my_session', // session table name. Defaults to 'session'.
'timeout' => 30 * 24 * 3600,
'cookieParams' => ['httponly' => true, 'lifetime' => 3600 * 24],
'writeCallback' => function ($session) {
return [
// 'user_id' => Yii::$app->user->id,
// 'last_write' => time(),
];
},
],
writeCallback
: To create more data and columns in the database table
Good luck
$_SESSION is saved on server or in browser?
Session data is stored on the server. A cookie with the session's ID is stored on the user's computer, and is associated with a single domain name. The browser passes this cookie to the server so it knows what session data to associate with the user.
Two websites, hosted under the same domain, are going to share the same session because there will only be one cookie containing a session ID. If you put the websites under different domains, you will no longer have the problem since two different cookies (containing two different session ID's) will be made on the user's computer; one for each domain name.
Location for session files in Apache/PHP
The default session.save_path
is set to ""
which will evaluate to your system's temp directory. See this comment at https://bugs.php.net/bug.php?id=26757 stating:
The new default for save_path in upcoming releaess (sic) will be the empty string, which causes the temporary directory to be probed.
You can use sys_get_temp_dir
to return the directory path used for temporary files
To find the current session save path, you can use
session_save_path()
— Get and/or set the current session save path
Refer to this answer to find out what the temp path is when this function returns an empty string.
What exactly does org.hibernate.Session.save() do?
Difference between save
and saveOrUpdate
Main difference between save
and saveOrUpdate
method is that save
generates a new identifier and INSERT
record into database while saveOrUpdate
can either INSERT
or UPDATE based upon existence of record. So save
will proceed without performing existence check, on the other hand saveOrUpdate
will check for existence, if record exists it will be updated else a new record will be inserted.
Basic differences between persist
and save
1)First difference between save
and persist
is their return
type. Similar to save
method, persist
also INSERT
records into database but return type of persist
is void
while return type of save
is Serializable object
.
2) Another difference between persist
and save
is that both methods make a transient instance persistent. However, persist
method doesn't guarantee that the identifier value will be assigned to the persistent instance immediately, the assignment might happen at flush time.
Is Session.Save sending a request to the database?
You are correct in your assumptions, though the inserts will be triggered one-by-one:
insert into Customer(id , name) values (1, 'na1');
insert into Customer(id , name) values (2, 'na2');
insert into Customer(id , name) values (3, 'na3');
You can try and take advantage of the bulk insert feature to increase the performance even more.
There is hibernate property which you can define as one of the properties of hibernate's SessionFactory
:
<property name="jdbc.batch_size">20</property>
With this batch setting you should have output like this after each flush:
insert into Customer(id , name) values (1, 'na1') , (2, 'na2') ,(3, 'na3')..
One insert instead of a twenty.
Error in Jest test req.session.save is not a function
Just you have to create a mock for req.session.save()
myController.spec.ts
descibe('test',()=> {
let req = httpMocks.createRequest({
session: {
save: jest.fn()
}
});
let res = httpMocks.createResponse();
it('should connected',()=> {
myController.connect(req,res);
expect(res.statusCode).toBe(200);
expect(res._isEndCalled()).toBeTruthy();
});
})
Related Topics
How to Add PHP Pagination in Array'S
Sending Sms with Amazon Aws Services PHP
Symfony How to Return All Logged in Active Users
How to Start a Get/Post/Put/Delete Request and Judge Request Type in PHP
Object-Oriented-Like Structures in Relational Databases
Remove Duplicated Elements of Associative Array in PHP
Convert the First Element of an Array to a String in PHP
Nohup:Ignoring Input and Appending Output to 'Nohup.Out'
Fatal Error: Cannot Use Object of Type Stdclass as Array In
How to Implement "Maintenance Mode" on Already Established Website
Any Aws Eb Laravel Route Getting 404 Not Found Nginx/1.16.1
Recommended Server for Continuous Integration for a PHP Project
How to Show an Alert Box in PHP
Preparing PHP Application to Use with Utf-8