1: The browser considers the GET access to be idempotent
that is, there is only one result for the same URL [the same means that the entire URL string matches exactly]
So if the URL string does not change during the second visit, the browser will directly After taking out the result of the first visit
POST is considered to be a changing access (the browser thinks that the submission of POST must have changed)
To prevent the idempotent access of GET, just add it after the URL? +new Date();, [In short, it makes the URL string different for each visit]
You should also abide by this principle when designing WEB pages
2: 1. Talk about the difference between Ajax Get and Post
Get method:
The get method can be used to transmit simple data, but the size is generally limited to 1KB. The data is appended to the URL and sent (HTTP header transmission). That is to say, the browser converts each form field element and its data according to the URL parameters. The format of is appended to the resource path in the request line. The most important point is that it will be cached by the client's browser, so others can read the customer's data, such as account number and password, etc. from the browser's history. Therefore, in some cases, the get method can cause serious security issues.
Post method:
When using the POST method, the browser sends each form field element and its data to the web server as the entity content of the HTTP message, instead of passing it as a parameter of the URL address. The amount of data transferred using the POST method The amount of data transmitted using the GET method is much larger.
In short, the GET method transmits a small amount of data, high processing efficiency, low security, and will be cached, while the opposite is true for POST.
Things to note when using the get method:
1 For get requests (or any involving url passing parameters), the passed parameters must first be processed by the encodeURIComponent method. Example: var url = "update.php?username=" + encodeURIComponent(username) + "&content=" +encodeURIComponent
(content)+"&id=1" ;
Please note when using the Post method:
1. Set the Context-Type of the header to application/x-www-form- urlencode ensures that the server knows that there are parameter variables in the entity. Typically SetRequestHeader("Context-Type","application/x-www-form-urlencoded;") of the XmlHttpRequest object is used. Example:
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
2. The parameters are key-value pairs with one-to-one name/value correspondence, and each pair of values is separated by an ampersand. Open. For example, var name=abc&sex=man&age=18, pay attention to the writing of var name=update.php?
abc&sex=man&age=18 and var name=?abc&sex=man&age=18;
3. The parameters are in Send Send in the (parameter) method, for example: xmlHttp.send(name); If it is the get method, directly xmlHttp.send(null);
4. Server-side request parameters distinguish Get and Post. If it is the get method, then $username = $_GET["username"]; If it is the post method, then $username = $_POST["username"];
AJAX garbled problem
Causes for garbled code:
1, xtmlhttp Return The default character encoding of the data is utf-8. If the client page is gb2312 or other encoded data, garbled characters will be generated. 2. The default character encoding of the data submitted by the post method is utf-8. If the server page is gb2312 or other encoded data Garbled characters will be generated
The solutions are:
1. If the client is gb2312 encoded, specify the output stream encoding on the server
2. Both the server and the client use UTF-8 encoding
gb2312:header('Content-Type :text/html;charset=GB2312');
utf8:header('Content-Type:text/html;charset=utf-8');
Note: If you have already followed the above method, still return If the code is garbled, check whether your method is get. For get requests (or any parameters passed by URL), the passed parameters must be processed by the encodeURIComponent method first. If encodeURIComponent is not used, garbled code will also be generated.