HTTP协议,一个完整的HTTP请求包括请求行、消息头、实体内容。
请求行用于描述客户端的请求方式,请求的资源,以及使用的HTTP协议版本号。消息头用于描述客户端请求的哪台主机,以及客户端的一些环境信息等。
请求头:
accept:浏览器通过这个头告诉服务器,它所支持的数据类型
Accept-Charset: 浏览器通过这个头告诉服务器,它支持哪种字符集
Accept-Encoding:浏览器通过这个头告诉服务器,支持的压缩格式
Accept-Language:浏览器通过这个头告诉服务器,它的语言环境
Host:浏览器通过这个头告诉服务器,想访问哪台主机
If-Modified-Since: 浏览器通过这个头告诉服务器,缓存数据的时间
Referer:浏览器通过这个头告诉服务器,客户机是哪个页面来的 防盗链
Connection:浏览器通过这个头告诉服务器,请求完后是断开链接还是何持链接
一个完整的HTTP响应代表服务器向客户端回送的数据,它包括状态行、消息头、实体内容。
状态码以及含义:
100~199 |
表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程 |
200~299 |
表示成功接收请求并已完成整个处理过程,常用200 |
300~399 |
为完成请求,客户需进一步细化请求。例如,请求的资源已经移动一个新地址,常用302、307和304 |
400~499 |
客户端的请求有错误,常用404 |
500~599 |
服务器端出现错误,常用 500 |
location:服务器通过这个消息头,告诉浏览器,跳到哪里寻找所要访问的资源。
server:服务器通过这个消息头,告诉浏览器,服务器的型号。
content-encoding:服务器通过这个消息头,告诉浏览器,数据的压缩格式。
content-length:服务器通过这个消息头,告诉浏览器,数据的长度。
content-type:服务器通过这个消息头,告诉浏览器,回送数据的类型。(response.setheader("content-type","image/jpeg")).
content-disposition:服务器通过这个消息头,告诉浏览器,以下载的方式打开。
expires:-1,服务器通过这个消息头,告诉浏览器,不要缓存。
cache-control:no-cache,服务器通过这个消息头,告诉浏览器,不要缓存。
pragma:no-cache,服务器通过这个消息头,告诉浏览器,不要缓存。
如果要控制浏览器不要缓存的话,尽量把三个消息头都设置,因为不同的浏览器支持的消息头可能不同。