阅读 42

前端面试: HTTP协议类、GET和POST区别

这是我参与8月更文挑战的第30天,活动详情查看:8月更文挑战

1.http协议特点

  • 简单快速:URI 统一资源符是固定的
  • 灵活:
  • 无连接:连接一次就会断开
  • 无状态:客户端、服务端两种身份

2.请求报文

请求行(http 方法,页面地址,请求方法)、请求头(参数key:value)、空行、请求体

3.响应报文

状态行、响应头、空行、响应体

4.HTTP方法

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

5.HTTP get和post区别

  • GET在浏览器回退时无害,POST会再次请求
  • GET产生的URL地址可以被收藏,而POST不可以
  • GET请求会被浏览器主动缓存,而POST不会,除非手动设置
  • GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会
  • GET请求在URL中传输的参数是有长度限制的,而POST没有
  • GET参数暴露在URL里,没有POST安全
  • GET参数 通过 URL传递,POST放在request body里

6.HTTP状态码

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

\

  • 200 OK:客户端请求成功
  • 302 :重定向,所请求的页面临时转移到新的url
  • 304: 客户端有缓存的文档并发出一个条件性的请求,服务端告诉用户,原来缓存的文档还可以继续使用
  • 403: 请求的资源被禁止访问
  • 404: 请求资源不存在
  • 500:服务器错误
  • 503: 服务器临时过载或者当机

7.持久连接

仅HTTP1.1支持

HTTP使用“请求-应答”模式,每个请求,客户端和服务器都会新建一个连接,完成后连接断开

使用Keep-Alive(持久连接、连接重用)时,Keep-Alive会使客户端和服务器的连接持续有效,当出现对服务器的后继请求,避免重新建立连接

8.管线化

仅HTTP1.1支持,只有GET和HEAD请求能够进行管线化,POST会有限制

持久连接情况下,请求一次响应一次

请求1-> 响应1-> 请求2 ->  响应2-> 请求3-> 响应3

将请求打包发送

请求1-> 请求2 -> 请求3-> 响应1-> 响应2-> 响应3

文章分类
前端
文章标签