你的浏览器不支持canvas

Enjoy life!

面试题目 - HTTP协议类

Date: Author: JM

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。

一、HTTP协议类

1.1 考点

  • HTTP协议的主要特点
  • HTTP报文的主要特点
  • HTTP方法
  • POST和GET的区别
  • HTTP状态码
  • 什么是持久化连接
  • 什么是管线化

1.2 HTTP协议的主要特点

  • 简单快速
    • 每个资源是固定的,所以在HTTP处理中是非常简单的,我想访问一个资源,直接输入一个URI即可
  • 灵活
    • 在每个HTTP头部分有个数据类型,通过设置这个数据类型,一个HTTP协议就可以传输不同类型的数据
  • 无连接
    • 连接一次就会断掉,不会保持连接
  • 无状态
    • 客户端和服务端是两种身份,连接断后,第二次连接,服务端是无法分辨再次发送请求的客户端是属于哪一个客户端的

1.3 HTTP报文的主要特点

dom

1.4 HTTP方法

dom

1.5 POST和GET的区别

  • GET在浏览器回退时时无害的,而POST会再次提交请求
  • GET产生的URL地址可以被收藏,而POST不可以
  • GET请求会被浏览器主动缓存,而POST不会,除非手动设置
  • GET请求只能进行url编码,而POST支持多种编码格式
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留
  • GET请求在URL中传递的参数是有长度限制的,而POST没有限制
  • 对参数的数据类型,GET只接受ASCll字符,而POST没有限制
  • GET比POST更不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息
  • GET参数通过URL传递,POST放在Request body中

1.6 HTTP状态码

dom

1.7 什么是持久化连接

  • HTTP 协议采用“请求-应答”模式,当使用普通模式,即非 Keep-Alive模式时,每个请求/应答客户和服务器都要新建一个连接,完成之后立即断开连接 (HTTP协议为无连接的协议)
  • 当使用 Keep-Alive 模式(又称持久连接、连接重用)时,Keep-Alive功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时, Keep-Alive 功能避免了建立或者重新建立连接
  • HTTP1.1版本支持持久化连接,HTTP1.0不支持

1.8 什么是管线化

  • 在使用持久连接的情况下,某个连接上消息的传递类似于:
    • 请求1 –》 响应1 –》 请求2 –》 响应2 –》 请求3 –》 响应3
  • 管线化下,某个连接上的消息变成了类似这样(也是基于持久连接的)
    • 原理:将请求一次性打包发给服务端,然后客户端一次返回响应
    • 请求1 –》 请求2 –》 请求3 –》 响应1 –》 响应2 –》 响应3
  • 管线化特点

dom


对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。