HTTP是超文本传输协议,是基于TCP/IP的应用层协议,用于客户端和服务端之间的通信。
报文是HTTP通信的最基本单位,由8位字节流组成,通过http通信传输。
HTTP请求数据包:
GET请求:请求行-请求头 POST请求:请求行-请求头-请求体
请求行:请求方式-请求URL-HTTP协议及版本
请求头:
Accept:告诉服务器要接受的数据类型
Content-type:发送给服务器的数据类型
Host:告诉服务器想要访问那太主机
Connection:连接方式
Cache-control:对缓存进行控制
Cookie:客户端的Cookie就是通过这个属性传给服务端
If-Modified-Since:本地文件的最后 修改时间和服务器上文件修改时间一样,说明此文件没有更新过,http服务器将返回304
告诉客户端使用本地文件。
If-None-Match和Etag值一样,说明文件没有更新,服务器将返回304,告诉客户端使用本地缓存文件。
以下三个表示服务器是通过请求头告诉浏览器不要缓存:
expires:-1;(让页面立即刷新)
cache-control:no-cache;
progma:no-cache;
HTTP响应数据包:请求行-请求头-请求体
响应行:协议及版本-状态码-响应状态
响应头:
Content-type:告诉浏览器要回送数据的类型
Content-length:告诉浏览器回送数据的长度
Location:告诉浏览器要跳到哪里
refresh:告诉浏览器要定时刷新;
响应体:响应数据
响应状态码:
1**:临时响应,表示需要请求者继续执行操作
2**:成功,表示请求已经成功处接受,并完成整个处理过程。
3**:重定向,表示完成请求,客户端需进一步操作。
4**:客户端错误,表示有语法错误妨碍了服务器的处理
5**:服务器错误,表示服务器在尝试处理请求时发生内部错误,这些错误可能是服务器本身错误,而不是请求出错。
200:请求成功
301:永久重定向
302:临时重定向
304:资源未改变,自从上次请求后,请求的网页未修改过,代表上次的已经缓存了,还可以继续使用
400:错误请求,服务器不理解请求的语法
401:未授权,请求要求身份验证,对于需要登录的网页,服务器可能会返回此响应。
403:禁止,服务器拒绝请求
404:未找到,服务器找不到请求的网页
500:服务器内部错误,服务器遇到错误,无法完成请求