课程思维导图
Q:HTTP的主要特点是什么?
无连接、无状态
Q:介绍下HTTP报文的组成部分?
- 请求报文:请求行、请求头、空行、请求体
- 响应报文:状态行、响应头、空行、响应体
以请求报文为例:
- 请求行:HTTP方法、页面地址、HTTP协议及版本
- 请求头:key-value值,告诉服务端需要的内容
- 空行:告知服务端以下内容为请求体
- 请求体:数据部分
Q:常见的HTTP方法有哪些?
- GET:获取资源
- POST:传输资源
- PUT:更新资源
- DELETE:删除资源
- HEAD:获得报文首部
Q:POST和GET的区别是什么?
- GET在浏览器回退时是无害的,而POST会再次提交请求
- GET请求会被浏览器主动缓存,而POST不会,除非手动设置
- GET请求参数会被完整保留在浏览器的历史记录里,而POST中的参数不会被保留
- GET请求在URL中传递的参数是有长度限制的,POST没有限制
- POST比GET安全,因参数暴露在URL上
- GET参数通过URL传递,POST放在Request body 中
Q:状态码表示的含义是?
- 1XX:指示信息:请求已接收,继续处理
- 2XX:成功,请求已被成功接收
- 3XX:重定向,完成请求需要进一步的操作
- 4XX:客户端错误,请求有语法错误或请求无法实现
- 5XX:服务器错误:服务端未能实现合法的请求
Q:常见状态码有哪些?
- 200:OK,客户端请求成功
- 206:Partial Content:客户端发送一个带有Range头的GET请求,服务器完成了他
- 301:Moved Permanently:所请求的页面已转移至新的URL
- 302:Found:所请求的页面已经临时转移到新的URL
- 304:Not Modified:客户端有缓存的文档,并发出一个条件性的请求,服务器告诉客户端,原来的缓存的文档可以继续使用
- 400:Bad Request:客户端请求有语法错误,不能被服务器所理解
- 401:Unauthorized:请求未经授权,必须与WWW-Authenticate报头域一起使用
- 403:Forbidden:对被请求页面的访问被禁止
- 404:Not Found:请求资源不存在
- 500:Internal Server Error:服务器发生不可预期的错误
- 503:Server Unavailable:请求未完成,服务器临时过载或宕机
Q:介绍下持久链接(HTTP1.1)?
- HTTP协议采用“请求-应答”模式,当使用普通模式,即非keep-Alive模式时,每个请求/应答客户和服务器都要新一个连接,完成之后立即断开连接。
- 当使用keep-Alive模式(持久链接)时,keep-Alive功能使客户端到服务器端的连接持久有效,当出现服务器的后继请求时,keep-Alive避免重新建立连接
Q:管线化是什么?
在使用持久连接的情况下,常规的消息传递是类似于:请求1 => 响应1 => 请求2 => 响应2 => 请求3 => 响应3,而管线化的消息传递是类似于请求1 => 请求2 => 请求3 => 响应1 => 响应2 => 响应3
Q:管线化的特点是什么?
- 通道持久建立,请求打包后,一起送过去,响应也是,打包后送回来
- 管线化机制通过持久连接完成,仅HTTP1.1支持
- 只有GET、HEAD请求可以进行管线化,而POST有所限制
- 初次创建连接时不应开启管线化机制,因对方服务器不一定支持HTTP1.1