HTTP 请求
-
HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。
-
HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。
1. GET
get方法请求指定的页面信息,返回实体主体。该请求是向服务器请求信息,请求参数会跟在url后面,因此,对传参长度有限制的,而且不同浏览器的上限是不同的(2k, 7~8k及其他)。由于get请求直接将参数暴露在url中,因此对于一些带有重要信息的请求可能并不完全合适。
2.POST
post请求是向指定资源提交数据进行处理请求,例如提交表单或者上传文件等。数据被包含在请求体中,POST请求可能会导致新的资源的建立和/或已有资源的修改。post方法没有对传递资源的大小进行限制,往往是取决于服务器端的接受能力,而且,该方法传参安全性稍高些
3.PUT
PUT方法是从客户端向服务器传送的数据取代指定的文档的内容。PUT方法的本质是idempotent的方法,通过服务是否是idempotent来判断用PUT 还是 POST更合理,通常情况下这两种方法并没有刻意区分,根据语义使用即可
4.DELETE
请求服务器删除指定的页面,DELETE请求一般会返回3种状态码:
200 (OK) - 删除成功,同时返回已经删除的资源
202 (Accepted) - 删除请求已经接受,但没有被立即执行(资源也许已经被转移到了待删除区域)
204 (No Content) - 删除请求已经被执行,但是没有返回资源(也许是请求删除不存在的资源造成的)
5.OPTIONS
允许客户端查看服务器的性能。(常见的是跨域预检Preflighted Reqeusts方法会采用该方法)。一般来说,开发中用到该方法是用来获取服务器支持的请求类型或者查看服务器类型,来确保接下来发送的请求够安全。该请求方法的响应不能缓存。如果该URI是一个星号(“*”),OPTIONS请求将试图应用于服务器,而不是某个指定资源;如果该URI不是星号,则只能用来获取该资源通信中可用的选项。
6.HEAD
类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
7.CONNECT
HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器
8.TRACE
回显服务器收到的请求,主要用于测试或诊断。
9.PATCH
是对 PUT 方法的补充,用来对已知资源进行局部更新 。
虽然 HTTP 的请求方式有 9 种,但是我们在实际应用中常用的也就是 get 和 post,其他请求方式也都可以通过这两种方式间接的来实现。
向服务器传参途径
- 1、URL路径参数,提取URL中的特定部分,服务端在路由中通过正则表达式,如/weather/beijing/2018;
- 2、查询字符串(GET方法),形如?key=1&name=xw;
- 3、请求体(body)中发送数据,如表单、json、xml,对应的请求方式有(POST、PUT等);
- 4、在http报文的头(header)中。
总结:请求行(路由,GET)、请求头(header)、请求体(POST、PUT...)