浏览器只能发送GET请求和POST请求
Form表单
发送POST请求,并且form标签中的method属性值为method="post"
请求数据的特点
GET请求在浏览器的地址栏中的请求行
上发送数据并且数据会回显在浏览器的地址栏上, 且无法发送大数据量
?
然后将请求参数挂在后面POST请求发送的数据存储在请求报文的请求体
当中,所以不会回显到浏览器的地址栏上,并且可以发送大数据量(理论上没有长度限制)
在没有使用Ajax异步请求前,无论发送GET请求还是POST请求,都是以name=value&
的格式发送请求数据,只不过请求数据的存储位置不同
URL请求和form表单的GET请求
都会将请求参数以键值对的格式拼接到请求地址后面form表单的POST请求
会将请求参数以键值对的格式存储到请求报文的请求体中,name是表单input标签的name属性,value是表单input标签的value属性拆分字符串
拿到前端浏览器发送过来的数据并包装到一个java对象当中,然后执行相应的业务方法缓存区别
GET请求支持缓存
,当我们每次发完GET请求后,浏览器会将请求和对应的服务器响应结果缓存起来,缓存机制目的是为了提高用户的体验
当发起同样的GET请求时,浏览器会先从本地缓存中找该请求和其对应的响应结果,如果本地缓存中找不到才会去服务器上获取资源,然后再把响应结果缓存到本地
想要避免发起GET请求时浏览器走缓存,实现每一次发起GET请求都是去服务器上找资源,需要保证每一次GET请求的请求路径都不一样
时刻变化的时间戳
,如https://n.sinaimg.cn/finance/590/w240h350/20211101/7cabc342ff5b9dc018b4b00cc.jpg?t=系统毫秒数POST请求不支持缓存
,因为POST请求是用来修改服务器端资源的,浏览器去缓存服务器对POST请求的响应结果没有意义
应用场景
GET请求比较适合从服务器端获取数据,因为GET请求只是为了从服务器上获取数据,所以GET请求是绝对安全的,不会对服务器造成威胁
POST请求适合向服务器提交数据,如果你的请求中携带了敏感信息或者做文件上传时要传的数据不是普通文本都可以使用POST请求