1.http协议类
- http协议的主要特点
- http报文的组成部分
- http方法
- post和get的区别
- http状态码
- 什么是持久连接
- 什么是管线化
http协议的主要特点
- 简单快速
- 灵活
- 无连接
- 无状态
http报文的组成形式
请求报文案例:
请求行:有地址 http 版本号
请求体:key/value 组成
get请求 相似 只是 参数在url 后边
get请求案例:
响应报文案例:
http方法
- GET --获取资源
- POST-- 传输资源(已办用于表单提交)
- PUT--更新资源
- DELETE--删除资源
- HEAD--获得报文首部
get和post方法的区别
- get在浏览器回退时是无害的 而post会再次提交
- get 产生的url地址可以被收藏,post不可以
- get请求会被浏览器主动缓存 post不会 除非手动设置
- get请求只能进行url 编码 post支持多种编码方式
- get请求参数会被完整的保留在浏览器历史记录里 post 参数不会被保留
- get 请求在url中传递的参数有限制 post 没有限制
- 参数的数据类型 get 只接受ASCII字符 post没有限制
- get比post更不安全 因为参数直接暴露在url 上 所以不能用来传递敏感信息
- get 参数通过url传递 post在request body中
http状态码
- 1xx:指示信息--表示请求已接收 继续处理
- 2xx:成功--表示请求已被成功接收
- 3xx:重定向--要完成请求必须进行更进一步的操作
- 4xx:客户端错误--请求有语法错误或者请求无法实现
- 5xx:服务器错误--服务器未能实现合法的请求
状态码详情:
200 ok:客户端请求成功
206 partial content:客户发送了一个带有range头的get请求,服务器完成了他
301 moved permanently:所请求的页面已经转移到新的rurl
302 found:所请求的页面已经临时转移到新的url
304 not modified:客户端有缓存的文档并发出了一个条件性的请求,服务器告诉客户 ,原来缓存的文档还可以使用。
400 bad request:客户端请求有语法错误,不能被服务器理解
401 unauthorized:请求未经授权,这个状态码必须和WWW-Authenticate报头域一起使用
403 Forbidden:页面被禁止访问
404 not found:请求资源不存在
500 internal server error:服务器发生不可预期的错误原来缓存的文档还可以继续使用
503 server unavaliable:请求未完成,服务器临时过载或宕机,一段时间后可以恢复正常
持久连接
http采用 “请求-应答" 模式,当使用普通模式,即非 keep-Alive 模式时,每个请求应答客户和服务器都要新建一个链接,完成之后立即断开连接(http 协议为无连接协议)
当使用keep-Alive模式(持久连接)时,Keep-Alive功能时客户端到服务器端的链接持续有效,当出现对服务器的后续请求时,Keep-Alive功能避免了建立或者重新建立连接。
管线化
在使用持久连接的情况下(>http1.1),某个连接上的消息传递类似于 请求1->响应1->请求2->响应2->请求3->响应3
某个连接上的消息变成了类似这样 请求1->请求2->请求3->响应1->响应2->响应3
特点:
管线化通过持久连接完成,仅HTTP/1.1支持此技术
只有 get和head请求可以进行管线化,而post则有限制
初次创建连接时不应启动管线机制,因为对方(服务器)不一定支持 http/1.1版本的协议
管线化不会影响响应到来的顺序
http/1.1 要求服务器端支持管线化,但并不要求服务器端响应进行管线化处理,只要求管线化处理不失败。
开启管线化可能并不能带来性能大幅度提升,有些支持并不好,现代浏览器 chrome和firefox并未默认开启