http协议相关知识整理
http协议的主要特点:
- 简单快速(统一资源符uri固定,即一个url地址对应一个资源)
- 无连接 (连接完成一次之后会自动断开,不会持久连接)
- 灵活 (通过一个http协议可以完成不同类型数据传输)
- 无状态 (HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快)
- 支持B/S及C/S模式
http报文的组成部分:
请求行:包含请求http方法,页面地址,http协议和版本
请求头:紧接着请求行(即第一行)之后的部分,用来说明服务器要使用的附加信息
空行: 用来分隔请求头和请求体
http方法:
get 获取资源
post 传输资源
put 更新资源
delete 删除资源
head 获得报文首部
connect HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
options 允许客户端查看服务器的性能
http状态码:
状态代码有三位数字组成,第一个数字定义了响应的类别,共分五种类别:
1xx:指示信息--表示请求已接收,继续处理
2xx:成功--表示请求已被成功接收、理解、接受
3xx:重定向--要完成请求必须进行更进一步的操作
4xx:客户端错误--请求有语法错误或请求无法实现
5xx:服务器端错误--服务器未能实现合法的请求
常见状态码:
200 OK //客户端请求成功
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常</span></code></span>
持久连接:
HTTP协议采用“请求问答”模式,当使用普通模式时,每个请求/应答客户和服务器都需要新建一个连接,完成后断开。
当使用keep-alive模式(持久连接)时,使得客户端到服务器端的连接持久有效,当出现对服务器端后续请求时,避免重新建立连接。
注:持久连接仅在http 1.1协议下可以使用,1.0版本无法使用。
持久连接管线化:
将持久连接情况下,多个资源连续请求响应的过程变成统一请求,统一响应。