HTTP请求,由客户端向服务端发出,可以分为四部分内容:请求方法(Request Method)、请求的网址(Request URL)、请求头(Request Headers)、请求体(Request Body)。
1.请求方法
请求方法有GET、HEAD、POST、PUT、DELETE、OPTIONS、CONNECT、TRACE等,我们平常遇到的绝大部分请求是GET或POST请求,我们主要来谈谈这两个请求方式。
在浏览器中直接输入URL并回车,这便发起了一个GET请求,请求的参数会直接包含到URL里,例如,在百度中搜索Python,这就是一个GET请求,链接为https://www.baidu.com/s?wd=Python,期中URL中包含了请求的参数信息,这里参数wd表示要搜寻的关键字。而POST请求大多在表单提交时发起,比如,对于一个登陆表单,输入用户名和密码后,点击“登录”按钮,这通常会发起一个POST请求,其数据通常以表单的形式传输,而不会体现在URL中。
2.区别
GET和POST请求方法有如下区别:
- GET请求中的参数包含在URL里面,数据可以在URL中看到,而POST请求的URL不会包含这些数据,数据都是通过表单形式传输的,会包含在请求体中。
- GET请求提交的数据最多只有1024字节,而POST方式没有限制。
一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用GET方法请求的话,密码会暴露在URL里面,造成密码泄露,所以这里最好用POST方式发送。上传文件时,由于文件内容比较大,也会选用POST方式。
下面,我们将常见的和不常见的请求方法,扼要总结在下表中。
方法 | 描述 |
---|---|
GET | 请求页面,并返回内容 |
HEAD | 类似于GET请求,只不过返回的响应中没有具体的内容,用于获取报头 |
POST | 大多用于提交表单或上传文件,数据包含在请求体中 |
PUT | 从客户端向服务器传送的数据取代指定文档中的内容 |
DELETE | 请求服务器删除指定的页面 |
CONNECT | 把服务器当作跳板,让服务器代替客户端访问其他网页 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |