http

面试复习之http

Posted by BY on August 17, 2019

http协议的主要特点

  1. 简单快速
  2. 灵活
  3. 无连接
    • 连接一次就会断掉
  4. 无状态
    • 服务端无法区分两次请求者的身份

http报文的组成部分

  • 请求报文
    • 请求行
    • 请求头
    • 空行
    • 请求体
  • 响应报文
    • 状态行
    • 响应头
    • 空行
    • 响应体

http方法

  • GET — 获取资源
  • POST — 传输资源
  • PUT — 更新资源
  • DELETE — 删除资源
  • HEAD — 获取报文首部

    POST和GET的区别

  1. ++get在浏览器回退时是无害的,而post会再次提交请求++
  2. get产生的URL地址可以被收藏,而post不可以
  3. ++get请求会被浏览器主动缓存,而post不会,除非主动设置++
  4. get请求智能进行url编码,post支持多种
  5. ++get请求参数会被完整的保存在浏览器历史记录里面,而post中的参数不会被保存++
  6. ++get请求在url中传送的参数是有长度限制的,而post没有限制++
  7. 对参数的数据类型,get值接收ASCII字符,post没有限制
  8. get比post更不安全,因为参数直接暴露在url上,所以不能用来传递敏感信息
  9. ++get参数通过url’传递,post放在request body中++

http状态码

  • 1XX: 提示信息-表示请求已接收,急需处理
  • 2XX: 成功
  • 3XX: 重定向- 要完成请求必须进行更进一步的操作
  • 4XX: 客户端错误-请求有语法错误或请求无法实现
  • 5XX: 服务端错误- 服务器未能实现合法的请求

什么是持久连接

  • http协议采用“请求-应答”模模式,当当时用普通模式,即非Keep-Alive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接(Http协议为无连接的协议)

  • 当使用Keep-Alive模式(又称持久连接,连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后续请求时,keep-alive功能避免了建立或者重新建立连接

什么是管线化

  • 只有get和head可以进行管线化,post有所限制