抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法

HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法

幂等:如果使用同一种请求方法的多个等效请求对服务器的预期影响,与一个等效请求对服务器的预期影响一样,那么这种请求方法被认为是幂等的。

GET(幂等)

  • 一般用于获取/查询资源信息,比如搜索排序、筛选,只能提交字符型数据
  • 提交的数据会在地址栏显示出来
  • 由于浏览器对地址栏长度的限制而导致传输的数据有限制(所谓的请求长度限制是由浏览器和 web 服务器决定和设置的,各种浏览器和 web 服务器的设定均不⼀样,这依赖于各个浏览器⼚家的规定或者可以根据 web 服务器的处理能⼒来设定)
    • IE:2083个字符
    • Firefox:65536个字符
    • Safari:80000个字符
    • Opera:190000个字符
    • google:8182个字符
  • 请求之后,结果会被浏览器缓存收纳,后续请求相同内容,从缓存中获取

POST(非幂等)

  • 一般用于更新资源信息,可以提交任何类型的数据,如文件、视频、音频等
  • 请求数据放在http包的包体中不会在地址栏显示出来
  • 无传输数据限制
  • 每次都需要从服务器获取相关资源

PUT(幂等)

  • 从客户端向服务器数据取代指定的文档内容
  • 通常指定了资源的存放位置
  • 修改数据内容,但是不增加数据种类,无论进行多少次PUT操作,资源不会增加
  • 浏览器在发PUT请求前会先发OPTIONS请求进行预检,看服务端是否可以接受PUT请求,若可以就在响应头添加字段告诉浏览器可以继续发送PUT请求:response[“Access-Control-Allow-Methods”] = “PUT”
  • POST主要作用在一个集合资源上,而PUT主要作用在一个具体资源上

DELETE(幂等)

  • 删除服务器中URL标识的资源,DELETE是幂等的
  • 多次操作不会产生多余的副作用
  • (返回什么状态码由什么决定??)

OPTIONS(幂等)

  • 主要用途有两个:允许客户端查看服务器性能;获取服务器支持的HTTP请求方法(黑客经常使用的方法)
  • 跨域之前发送嗅探请求,判断是否有对指定资源的访问权限

HEAD(幂等)

  • 类似于get请求,不过返回的响应中没有具体内容,用于获取报头,HEAD请求响应可以被缓存
  • 可以用来获取请求中隐含的元信息,而无需传输实体本身
  • 检查资源、超链接的有效性;检查网页是否被串改;用于自动搜索机器人获取网页的标志信息、RSS种子信息,或者传递安全认证信息

TRACE

  • 回显服务器收到的请求,主要用于测试或诊断

CONNECT

  • HTTP/1.1协议中预留给可以将链接改成管道方式的代理服务器
  • 通常用于SSL加密服务器的链接与非加密的HTTP代理服务器的通信

评论