方法
GET
GET方法用来请求访问URI识别的资源。GET方法受浏览器的长度限制较大,一般在2k左右。GET方法将请求参数暴露在了url中。GET会被浏览器缓存。
POST
POST方法用来传输实体的主体。POST方法受浏览器长度限制较小,chrome一般在5M左右。POST请求会请求两次,客户端会先发送一次head请求给服务端,然后再进行数据的传输。(firefox只会进行一次)。
PUT
PUT方法用来传输文件。HTTP/1.1中的PUT 方法没有安全验证,所以不建议使用,出发架构采用了REST(Representational State Transfer,表征状态转移)标准。
HEAD
HEAD方法与GET方法类似,只是返回数据只有响应头部
DELETE
DELETE方法用来删除文件。与PUT方法相反
OPTIONS
OPTIONS方法用来查询支持的方法
TRACE
TRACE用来追踪路劲。容易引发XST攻击
CONNECT
CONNECT方法要求在与代理服务器通信时建立隧道
PATCH
PATCH方法是新引入的,是对PUT方法的补充,用来对已知资源进行局部更新
需要注意的是像PUT,DELETE,PATCH只是一种语义化的约定,没有强约束
状态码
1xx
表示请求正在进行中
2xx
请求被正常处理了
200 OK
请求成功返回。返回的信息根据请求方法的不同返回不同的信息。比如GET方法和HEAD方法类似请求就会返回不同的信息
204 No Content
请求成功处理了,但该请求不需要返回的主体
206 Partial Content
客户端采用了范围发送,这部分的内容被成功接受了
3xx
表示地址需要重定向
301 Moved Permanently
永久重定向,该网站的资源已经永久的转移到另一个地址。如果书签中有A地址,A地址被永久重定向到了B地址。书签中的地址会修改为B地址
302 found
临时重定向。A地址的资源被分配到了B地址。本次访问A地址临时修改为访问B地址。
303 See Other
临时重定向。和302类似,但是仅限于GET方法
304 Not Modified
该状态码表示客户端发送附带条件的请求时(GET请求报文包含If-Match,If-Modified-Since,If-None-Match,If-Range,If-Unmodified-Since中任一首部),服务端允许请求资源,但因发生请求未满足条件的情况后,直接返回304。这种情况一般是本地有缓存,而且服务端判断该缓存有效,无需重新加载。因此可以继续使用缓存
307 Temporary Redirect
和302类似。但是虽然标准不允许302将POST方法修改为GET方法,但是在浏览器自己的行为中,会将302的POST请求修改为GET请求。307会严格按照标准,不将POST变为GET
308 Permanent Redirect
和301类似。但是虽然标准不允许301将POST方法修改为GET方法,但是在浏览器自己的行为中,会将301的POST请求修改为GET请求。308会严格按照标准,不将POST变为GET
4xx
表示 请求错误且错误对象是客户端
400
该状态码表示该请求报文中存在语法错误
401 Unauthorized
表示需要认证
403 Forbidden
表示对请求资源的访问被服务器拒绝了。服务端没必要返回拒绝原因,但可在报文主体中说明。比如未授权,权限问题。
404 Not Found
表示服务器无法找到请求的资源
5xx
表示服务端发生错误
500 Internel Server Error
表示服务端在执行请求时发生错误
503 Service Unavailable
该状态码表示服务器超负载或者正在维护中,可以稍后再试