一、http的请求类型:
- get:请求指定的页面信息,并返回实体主体
- post:向指定资源提交数据并进行处理请求。数据被包含在请求体中,post请求可能会导致新的资源的建立或已有资源的修改
- head:类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头
- options:允许客户端查看服务器的性能
- put:从客户端向服务器传送的数据取代指定的文档的内容
- Delete:请求服务器删除指定的页面
- Trace:回显服务器收到的请求,主要用于测试或诊断
- Connect:http/1.1协议中预留给能够将连接改为管道方式的代理服务器
二、get和post的区别
- get和post的本质区别:get是发送一次http请求,post是先发送请求头再发送请求体,相当于两次请求
- get请求一般用于从服务器获取资源
- post一般用于更新服务器上的资源
- get是幂等的,也就是读取同一个资源,总是得到相同的数据。且不会改变服务器上的资源
- post是非幂等的,因为每次请求对资源的改变并不是相同的,因此读取同一个资源得到的数据是不同的,且post会对服务器资源进行改变
- get请求的数据会附在URL之后,也就是将请求放在http报文的请求头中【以 ? 分割 URL 和传输数据,参数之间以 & 相连。】
- post 请求会把提交的数据则放置在是 HTTP 请求报文的请求体中
- 因为get请求提交的数据将明文出现在URL上,而post请求参数被包装到请求体中,因此post相对更加安全
- get请求的长度受限于浏览器或者服务器对URL长度的限制,允许发送的数据量比较小
- post请求没有大小限制
- get请求是不会刷新数据的
- post刷新,数据会被重复提交
- post 比get 慢,因为post在发送数据前会先将请求头发给服务器进行确认,然后才真正发送数据,get请求直接发送请求头和数据