现在广泛使用的是HTTP/1.1版本,发布于1997年。
理解HTTP协议,首先从请求开始,比如:
POST /form/entry HTTP/1.1
格式为: 请求方法 URI 协议版本
请求方法:
GET:获得URI指定的资源,主要目的是获取
POST:将主体传输到URI,主要目的是传输,而不是获取
PUT:传输文件,在请求主体中包含文件内容,然后保存到URI指定的位置。
HEAD:只获取GET结果的头部,除去主体。
DELETE:删除文件,是PUT的逆操作
OPTIONS:查询针对请求URI指定资源支持的方法。用法如:
OPTIONS * HTTP/1.1
HOST:xxx
注意:由于PUT和DELETE方法涉及服务器文件的直接操作,较为敏感,所以一般Web网站并不支持。
除非配合使用了Web的验证机制。
常用的状态码:
1XX:表示消息
2XX:成功
200 OK 请求成功,且返回了内容
204 No Content:请求成功处理,但不返回内容
206:Partial Content:服务器按照客户端的要求发返回了某个范围的内容。
3XX:重定向
301: Moved Permanently:请求的资源已被永久分配了新的URI,本次用新URI访问
302: Found:请求的资源已被暂时分配了新的URI,本次用新URI访问
可以看出,无论是301还是302,请求的资源都有两个URI
303: See Other:与302类似,请求资源有新的URI,用GET去获取
304: Not Modified:资源已找到,但未满足请求报文中包含的条件(与重定向无关)
4XX:客户端错误
400: Bad Request:请求报文存在语法错误
401: Unauthorized:发送的请求中没有包含认证信息,或者认证失败
403: Forbidden:访问被拒绝(如权限等问题)
404: Not Found:服务器上没有URI指定的资源
5XX:服务器错误
500: Internal Server Error:服务器端在执行请求时发生了错误
503: Service Unavailable:服务器无法处理请求(服务器正超负荷运转或维护等)