HTTP

课程思维导图

HTTP

Q:HTTP的主要特点是什么?

无连接、无状态

Q:介绍下HTTP报文的组成部分?

  1. 请求报文:请求行、请求头、空行、请求体
  2. 响应报文:状态行、响应头、空行、响应体

以请求报文为例:

  1. 请求行:HTTP方法、页面地址、HTTP协议及版本
  2. 请求头:key-value值,告诉服务端需要的内容
  3. 空行:告知服务端以下内容为请求体
  4. 请求体:数据部分

Q:常见的HTTP方法有哪些?

  1. GET:获取资源
  2. POST:传输资源
  3. PUT:更新资源
  4. DELETE:删除资源
  5. HEAD:获得报文首部

Q:POST和GET的区别是什么?

  1. GET在浏览器回退时是无害的,而POST会再次提交请求
  2. GET请求会被浏览器主动缓存,而POST不会,除非手动设置
  3. GET请求参数会被完整保留在浏览器的历史记录里,而POST中的参数不会被保留
  4. GET请求在URL中传递的参数是有长度限制的,POST没有限制
  5. POST比GET安全,因参数暴露在URL上
  6. GET参数通过URL传递,POST放在Request body 中

Q:状态码表示的含义是?

  1. 1XX:指示信息:请求已接收,继续处理
  2. 2XX:成功,请求已被成功接收
  3. 3XX:重定向,完成请求需要进一步的操作
  4. 4XX:客户端错误,请求有语法错误或请求无法实现
  5. 5XX:服务器错误:服务端未能实现合法的请求

Q:常见状态码有哪些?

  1. 200:OK,客户端请求成功
  2. 206:Partial Content:客户端发送一个带有Range头的GET请求,服务器完成了他
  3. 301:Moved Permanently:所请求的页面已转移至新的URL
  4. 302:Found:所请求的页面已经临时转移到新的URL
  5. 304:Not Modified:客户端有缓存的文档,并发出一个条件性的请求,服务器告诉客户端,原来的缓存的文档可以继续使用
  6. 400:Bad Request:客户端请求有语法错误,不能被服务器所理解
  7. 401:Unauthorized:请求未经授权,必须与WWW-Authenticate报头域一起使用
  8. 403:Forbidden:对被请求页面的访问被禁止
  9. 404:Not Found:请求资源不存在
  10. 500:Internal Server Error:服务器发生不可预期的错误
  11. 503:Server Unavailable:请求未完成,服务器临时过载或宕机

Q:介绍下持久链接(HTTP1.1)?

  1. HTTP协议采用“请求-应答”模式,当使用普通模式,即非keep-Alive模式时,每个请求/应答客户和服务器都要新一个连接,完成之后立即断开连接。
  2. 当使用keep-Alive模式(持久链接)时,keep-Alive功能使客户端到服务器端的连接持久有效,当出现服务器的后继请求时,keep-Alive避免重新建立连接

Q:管线化是什么?

在使用持久连接的情况下,常规的消息传递是类似于:请求1 => 响应1 => 请求2 => 响应2 => 请求3 => 响应3,而管线化的消息传递是类似于请求1 => 请求2 => 请求3 => 响应1 => 响应2 => 响应3

Q:管线化的特点是什么?

  1. 通道持久建立,请求打包后,一起送过去,响应也是,打包后送回来
  2. 管线化机制通过持久连接完成,仅HTTP1.1支持
  3. 只有GET、HEAD请求可以进行管线化,而POST有所限制
  4. 初次创建连接时不应开启管线化机制,因对方服务器不一定支持HTTP1.1