HTTP请求类型
HTTP协议定义了很多类请求,包括OPTIONS、HEAD、GET、POST、PUT、DELETE、TRACE、CONNECT,具体介绍如下:
-
OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*’的请求来测试服务器的功能。
-
HEAD:向服务器索要与GET请求相一致的响应,只不过响应body将不会返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取不包含在响应消息头中的元信息。
-
GET:向特定的资源发出请求。
-
POST:向特定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求body中。POST请求可能会导致新的资源的创建和/或已有资源的修改。
-
PUT:向指定资源位置上传其最新内容。
-
DELETE:请求服务器删除所表示的资源
-
TRACE:回显服务器收到的请求,主要用于测试或诊断。
-
CONNECT:HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。
我们在实际应用中常用的也就是get和post,其他的请求方式也可以通过get和post间接实现。
GET和POST请求的区别
-
GET提交的数据放在HTTP请求报文的URL中,用?分割URL和传输数据,参数之间以&连接,如/Response/get?key1=value1&key2=value2。 POST把提交的数据放在HTTP请求报文的body中。
-
GET提交的数据大小有限制,而POST方法提交的数据没有限制
-
GET需要使用_GET[“key”],而POST通过使用_POST[“key”]、以及读取php://input流、或者读取HTTP_RAW_POST_DATA常量来实现
HTTP Request 报文结构
HTTP Request 结构如下图所示
-
Request Line 包含HTTP 请求类型(GET、POST等), 请求URL, Http版本号
当使用“GET”方法的时候,body为空 -
HTTP Request Header中包含HTTP请求操作参数. header属性定义了所传输数据的各种特性.
-
HTTP Request Body 包含请求中携带的其他信息
HTTP Request Header
HTTP Request Header包含以下内容:
-
Cache 头域
-
Client 头域
-
Cookie/Login 头域
-
Entity 头域
-
Miscellaneous 头域
-
Transport 头域
Cache 头域
If-Modified-Since
作用: 把浏览器端缓存页面的最后修改时间发送到服务器去,服务器会把这个时间与服务器上实际文件的最后修改时间进行对比。如果时间一致,那么返回304,客户端就直接使用本地缓存文件。如果时间不一致,就会返回200和新的文件内容。客户端接到之后,会丢弃旧文件,把新文件缓存起来,并显示在浏览器中.
例如:If-Modified-Since: Thu, 09 Feb 20