HTTP协议
超文本传输协议,是一种建立在TCP上的无状态连接。整个基本流程是客户端发送一个http请求,说明客户端想要访问的资源和请求的动作,服务端收到请求后,开始处理请求,并根据请求做出相应的动作访问服务器资源。最后通过发送HTTP响应把结果返回给客户端。
一个请求的开始到响应的结束称为事务,当一个事务结束后,会在服务端添加一条日志条目。
1、http请求
组成:状态行、请求头、请求正文
状态行:请求方式Method、请求url、协议版本号
请求正文:http请求的数据
2、请求方式
get:访问服务器的资源
post:向服务器发送要修改的数据
put:向服务器上传资源
head:获取服务器文档的首部
delect:删除服务器的资源
3、http请求头
Accept:客户端可接受的MEMI类型
Accept-Charset:客户端可接受的字符集
Accept-Encoding:编码格式
Accept-language:语言种类
Connection:是否持久连接
Cookie:浏览器用这个属性向服务器发送Cookie,是在浏览器中寄存的小型数据体,可以记载和服务器相关的用户信息,也可以用来实现会话功能。
host:域名
from:使用post请求时,提交数据
User-Agent:浏览器表识
Referer:页面跳转处(包含一个url,用户从该url代表的页面出发,访问当前请求的页面)
4、状态行
1XX:表示服务器成功接受部分请求,要求客户端继续提交其余请求才能完成整个处理过程。
100:(继续)请求者应继续提出请求
101:(切换协议)请求者已要求服务器更换协议,服务器已确认并准备更换。
2XX:表示服务器成功接收请求并已完成整个处理过程。常用200(OK 请求成功)
200:(成功)服务器已完成请求。
202:(已接受)服务器已接受请求,但未处理。
3XX:为完成请求,客户需要进一步细化请求。(重定向)
300:(多种选择)针对请求,服务器可执行多种操作
301:(永久移动)所请求的页面已永久转移至新的url
302:(临时移动)所请求的页面已临时转移至新的url
(官方的比较简洁的说明:301 redirect: 301 代表永久性转移(Permanently Moved);302 redirect: 302 代表暂时性转移(Temporarily Moved ))
303:(查看其他位置)请求者应对不同的位置使用单独的GET请求来检索响应时,服务器返回其代码
304:(未修改)自上次修改后,请求的页面未修改过。
305:(使用代理)请求者只能使用代理请求页面
307:(临时重定向)服务器目前从不同位置的页面响应请求,但请求者应使用原有位置来响应以后的请求。
4XX:请求错误
400:(错误请求)服务器不理解请求的语法。
401:(未授权)请求要求身份验证。
403:(禁止)服务器拒绝请求。
404:(未找到)服务器找不到请求的页面。
405:(方法禁用)禁用请求中指定的方法。
5XX:服务器错误
500:(服务器内部错误)服务器遇到错误,无法完成请求。
501:(尚未实施)服务器不具备完成请求的功能。
502:(错误网关)服务器作为网关或代理,从上游服务器收到无效响应。
503:(服务不可用)服务器目前无法使用(由于超载或停机维护)。通常只是暂时情况!
504:(网关超时)服务器作为网关或代理,但是没有及时从上游服务器收到请求。
505:(HTTP版本不受支持)服务器不支持请求中所用的HTTP协议版本。
4、http响应头
Allow:服务器支持的请求方式
content-Encoding:文档的编码格式
Content-Length:内容长度
Content-Type:文档类型,一般为text/plain
Data:当前的GMT时间
Server:服务器名称
set-Cookie:设置和页面关联的Cookie