面试取经:网络篇-常见请求方法

39 阅读2分钟

常见请求方法

请求方法的本质

请求方法是请求行的第一个单词,它向服务器描述了客户端发出请求的动作类型,虽然可以自定义请求方法,但一般不这么做

fetch('http://xxxx',{
    method:'TEST'
})

客户端和服务端,约定俗成规定了一些常见的请求方法

  • GET ,表示向服务器获取资源,业务数据在请求行中,无需请求体
  • POST,表示向服务器提交信息,通常用于创建新的数据,业务数据包含在请求体中
  • PUT,表示希望修改服务器的数据 ,通常用于修改数据,业务数据包含在请求体中
  • DELETE,表示希望删除服务器的数据 ,业务数据在请求行中,无需请求体
  • OPTIONS,发生在跨域的预检请求中,表示客户端向服务器申请跨域提交
  • TRACE,回显服务器收到的请求,主要用于测试和诊断
  • CONNECT,用于建立连接管道,通常在代理场景中使用,网页中很少用到

GET 和 POST的区别

本质上没有什么区别,只有语义上的区别

浏览器和服务器约定俗称的规则,造成了GET POST 之间的区别

  • 发送GET,不附带请求体

  • GET 请求传递的信息量有限,POST则没有限制

    • 浏览器对请求行做了大小限制(4k),请求体则没有限制
  • GET 只能传递ASCII数据,遇到非ASCII需要进行编码,POST没有限制

    • 浏览器对请求行、请求头做了限制
  • 大部分GET请求传递的数据都附带在path参数中,能够通过分享地址完整的重现页面,,但同时 也暴露了数据,有泄露隐私的风险

  • 刷新页面,若当前页面是通过POST得到的,则浏览器会提示用户是否重新提交(开发模式下无效),GET则无

  • GET 请求的地址可以被保存为浏览器书签,POST不可以