1.HTTP协议的格式
客户端,请求格式:请求行(request Line),请求头部(header),空行和请求数据,其中get请求只到空行就结束了,也就是get请求是没有请求数据的,post请求有。
格式如下:
GET /hello.txt HTTP/1.1 User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3 Host: www.example.com Accept-Language: en, mi
服务器响应格式:状态行、消息报头、空行和响应正文。
格式如下:
HTTP/1.1 200 OK Date: Mon, 27 Jul 2009 12:28:53 GMT Server: Apache Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT ETag: "34aa387-d-1568eb00" Accept-Ranges: bytes Content-Length: 51 Vary: Accept-Encoding Content-Type: text/plain
本篇文章主要说服务器响应的状态行的状态码。
2.常用状态码
2**:只要是2开头的都可以认为是请求成功,服务器正常处理
常见的200,202
3**:只要是3开头的都是重定向的相关请求,需要进一步操作。
302,重定向,同时还会发过来一个Location响应头,告知浏览器跳转到某个地址
304,比较if-Modified-since的时间是否与文件真实修改的时间相同,如果相同把客户端的缓存拿出来给客户端显示,前提是响应头允许客户端缓存
4**:所有4开头的都可以理解为是客户端错误,请求路径不对,或者输入错误
404,这个错误相信很多人都见过,这个错误的意思你访问的路径不存在导致的。
405,客户端请求的方法被禁止,
5**:所有5开头的都是服务器端错误,通常这种错误就不需要客户管了。
500:客户端内部出现错误
502:网关或者代理,从远端接收了一个无效的请求
504:网关或者代理,未能及时获取请求