When it comes to cookies, we have to start with the http protocol. What is the http protocol? Literally understood, an agreement is an agreement. If there is an agreement, there must be at least two participants, and the communication between the participants must follow such specifications.
It's like Baiyun and Kurotsuchi are together. It is stipulated that in the future, the two of them will communicate in the language they have agreed upon. If Baiyun stretches out his left hand, then Kurotsuchi will do it when he sees this action. He judged, oh, it turned out that he was going to beat his legs, so he immediately jumped on him and beat his legs. Baiyun stretched out his right hand, and Kurotsuchi looked at it and thought, Oh my god, this is the time to drink water, so he immediately handed over the water. At this time, Baiyun stretched out his left foot, and Kurotsuchi immediately kissed him. It is precisely because the communication between the two people followed each other's agreement that it became easy to understand and efficiently executed.
The same goes for the http protocol. The participants in this protocol are the client (Baiyun) and the server (Black Earth).
It is with the http protocol that the communication between the client and the server becomes easy and easy to understand. Just imagine, if Baiyun and Heitu did not standardize their communication methods in advance as agreed, then Baiyun would reach out With his left foot, Uncle Kurotsuchi probably thought he was going to kick himself.
Next, let’s take a look at what are the characteristics of the http protocol?
1. Support client/server mode;
2. Simple and fast
3. Flexible
4.No connection
5 ,no status.
Support client/server mode: To put it simply, it supports communication between two people, that is, it supports Baiyun and Heitui to talk to each other.
Simple and convenient: Just like the communication between Baiyun and Heitu, it is as simple as stretching out your left hand and right hand. The same is true for the http protocol. Whether it is a client request or a server response, setting the corresponding message header, method, and message body can be communicated to the other party, and both parties can understand the other party's meaning.
The reason for flexibility is that HTTP allows the transmission of any type of data object. The type of transmission can be marked by Content-Type.
No connection means that the client requests the server, and the server automatically disconnects the link after completing the response. It's like Bai Yun stretched out his left hand, Kurotsuchi came over to hammer his legs, and then walked away automatically to do other things.
Stateless refers to the client requesting the server. After the server responds, it will not record any data for this connection communication. Just like Baiyun stretched out his left hand, Kurotsuchi came over and hammered the legs. After hammering the legs, you asked Uncle Kurotsuchi what you said when you beat the legs. Kurotsuchi replied: I don't remember anything.
Of course, there are far more http protocols than this. We will talk about the details later. With the knowledge of the http protocol above, we will introduce our cookies.
As mentioned above, Baiyun and Kurotsuchi agreed on their own communication method, which is very efficient and simple, but their communication also has certain problems, that is, the statelessness of the http protocol, that is, Uncle Kurotsuchi When he was beating Baiyun's legs, he didn't know what was said between the two of them. His brain was not working well and he couldn't remember. He could only remember a few things. This was not a good thing. For example, when he was beating his legs, Baiyun told Kurotsuchi, "You The strength of the hand was too strong, and it hurt me so much. Please be gentler. After hearing this, the black-headed uncle immediately softened the strength of the hand, and then walked away to do other things after the hammering. As soon as Kurotsuchi left, Baiyun stretched out his left hand again. Kurotsuchi quickly came over and beat his legs, still beating his legs hard. Baiyun became anxious. Didn't I tell you just now? Put your hands gently, and the old woman's legs were numb after beating her. Uncle Kurotsuchi looked confused, "Kiss, I really don't remember."
what to do?
If this continues, Uncle Kurotsuchi will make Baiyun angry to death, so someone made a suggestion. Every time Baiyun reaches out or stretches her legs, she throws out a note, which records some of her personal requirements. , Uncle Kurotsuchi got the note, and while reading the note, he ran over and made corresponding response operations. After the response was completed, he returned the note to Bai Yun, so that Bai Yun could write down his requirements when he came to see him next time. Throw this note to Kurotsuchi.
Although this method is a bit uncivilized, it solves the problem of Uncle Kurotsuchi not being able to remember anything.
Yes, the note above is actually the cookie we are going to talk about today. When the client initiates a request to the server, the client brings the cookie to request the server. With this cookie, it can remember The status and related information of the last request are stored so that communication has status and memory.
Many people do not recommend using cookies when storing some data. The reason is that every time the client requests the server, it will bring cookie information. Although a cookie usually has a value of only 4K, Once the volume increases, it will consume a lot of bandwidth.
Then let’s explain some basic working principles of cookies:
Cookies mainly transmit data through the header HTTPHeader. That is, data is passed in request headers and message headers. The Cookie mechanism defines two headers: Set-Cookie header and Cookie header. set-cookie exists in the message header of the server response. The cookie exists in the message header of the client request.
The cookie operation process is as follows:
(1) Client Type the URL of the web server into the browser's address bar, and the browser sends a request to read the web page.
(2) After the server receives the request, it generates a Set-Cookie header, puts it in the HTTP message and sends it back to the client to initiate a session.
(3) After the client receives the response, if it wants to continue the session, it will take out the contents of Set-Cookie-ie to form a Cookie.txt file and store it in the client computer.
(4) When the client makes a request to the server again, the browser first searches the computer for the Cookie.txt file corresponding to the website. If found, a Cookie header is generated based on this Cookie.txt and placed in the HTTP request message and sent to the server.
(5) The server receives the request containing the Cookie header, retrieves the user-related information in its Cookie, and generates a page response requested by the client and passes it to the client. Every web page request made by the browser can pass the existing cookie file, for example, the browser opens or refreshes the web page operation.
This is the basic working principle of cookies.
In addition, there are two ways to set cookies in php:
1 Calling the setCookie function
2 Calling the session_start function
Here is a brief explanation of session_start Once session_start() is written, the server will generate a file named session_id on the server, and at the same time send the set-cookie header to the client, with the content of phpsessid = the file name of the session stored on the server, That is, session_id, the client will generate a cookie file when receiving the response, that is, session_start actually contains the setCookie operation, but it is not as flexible as setCookie.
Related recommendations:
Detailed explanation of cookies for PHP session control
Detailed explanation of cookie usage
The above is the detailed content of Analysis of the principles and phenomena of cookies. For more information, please follow other related articles on the PHP Chinese website!

PHP remains important in modern web development, especially in content management and e-commerce platforms. 1) PHP has a rich ecosystem and strong framework support, such as Laravel and Symfony. 2) Performance optimization can be achieved through OPcache and Nginx. 3) PHP8.0 introduces JIT compiler to improve performance. 4) Cloud-native applications are deployed through Docker and Kubernetes to improve flexibility and scalability.

PHP is suitable for web development, especially in rapid development and processing dynamic content, but is not good at data science and enterprise-level applications. Compared with Python, PHP has more advantages in web development, but is not as good as Python in the field of data science; compared with Java, PHP performs worse in enterprise-level applications, but is more flexible in web development; compared with JavaScript, PHP is more concise in back-end development, but is not as good as JavaScript in front-end development.

PHP and Python each have their own advantages and are suitable for different scenarios. 1.PHP is suitable for web development and provides built-in web servers and rich function libraries. 2. Python is suitable for data science and machine learning, with concise syntax and a powerful standard library. When choosing, it should be decided based on project requirements.

PHP is a scripting language widely used on the server side, especially suitable for web development. 1.PHP can embed HTML, process HTTP requests and responses, and supports a variety of databases. 2.PHP is used to generate dynamic web content, process form data, access databases, etc., with strong community support and open source resources. 3. PHP is an interpreted language, and the execution process includes lexical analysis, grammatical analysis, compilation and execution. 4.PHP can be combined with MySQL for advanced applications such as user registration systems. 5. When debugging PHP, you can use functions such as error_reporting() and var_dump(). 6. Optimize PHP code to use caching mechanisms, optimize database queries and use built-in functions. 7

The reasons why PHP is the preferred technology stack for many websites include its ease of use, strong community support, and widespread use. 1) Easy to learn and use, suitable for beginners. 2) Have a huge developer community and rich resources. 3) Widely used in WordPress, Drupal and other platforms. 4) Integrate tightly with web servers to simplify development deployment.

PHP remains a powerful and widely used tool in modern programming, especially in the field of web development. 1) PHP is easy to use and seamlessly integrated with databases, and is the first choice for many developers. 2) It supports dynamic content generation and object-oriented programming, suitable for quickly creating and maintaining websites. 3) PHP's performance can be improved by caching and optimizing database queries, and its extensive community and rich ecosystem make it still important in today's technology stack.

In PHP, weak references are implemented through the WeakReference class and will not prevent the garbage collector from reclaiming objects. Weak references are suitable for scenarios such as caching systems and event listeners. It should be noted that it cannot guarantee the survival of objects and that garbage collection may be delayed.

The \_\_invoke method allows objects to be called like functions. 1. Define the \_\_invoke method so that the object can be called. 2. When using the $obj(...) syntax, PHP will execute the \_\_invoke method. 3. Suitable for scenarios such as logging and calculator, improving code flexibility and readability.


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

mPDF
mPDF is a PHP library that can generate PDF files from UTF-8 encoded HTML. The original author, Ian Back, wrote mPDF to output PDF files "on the fly" from his website and handle different languages. It is slower than original scripts like HTML2FPDF and produces larger files when using Unicode fonts, but supports CSS styles etc. and has a lot of enhancements. Supports almost all languages, including RTL (Arabic and Hebrew) and CJK (Chinese, Japanese and Korean). Supports nested block-level elements (such as P, DIV),

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Dreamweaver Mac version
Visual web development tools

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.