HTTP请求方式及常见问题
请求方式
当前HTTP一共有八种方式。有三种是有HTTP1.0提供,剩余五种则是有HTTP1.1提供
常见问题
啥是OPTIONS?有啥作用
是浏览器对复杂跨域请求的一种处理方式,在真正发送请求之前,会先进行一次预请求,就是我们刚刚说到的参数为OPTIONS的第一次请求,他的作用是用于试探服务端是否能接受真正的请求。如果options获得的回应时拒绝性质的,如404、403、500等状态,就会停止post、get请求的发出。
产生条件:
- 请求的方法不是GET/HEAD/POST
- POST请求的Content-Type并非application/x-www-form-urlencoded, multipart/form-data, 或text/plain
- 请求设置了自定义的header字段
简单请求和复杂请求是什么?
简单请求就是会直接发送请求,而复杂请求则会在发送真正的请求之前发一次OPTIONS预检请求,来试探服务器是否能够接收真正的请求,MDN对OPTIONS预检请求的释义为检测服务器所支持的请求方法。
简单请求符合如下两个条件
- 请求方式:GET、POST、HEAD,即HTTP1.0提供的三种请求方法
- HTTP头部信息不超过一下几种字段:无自定义头部字段、Accept、Accept-Language、Content-Language、Last-Event-ID、Content-Type(只有三个值application/x-www-form-urlencoded、multipart/form-data、text/plain)
复杂请求则符合如下几个条件之一
- 请求方式:PUT、DELETE
- 自定义头部字段
- 发送json格式数据
说一说GET和POST的联系和区别
联系:GET/POST都是TCP连接
区别:
重要区别:长方用包安,退缓历史类码(厂房用保安,退还历史累吗)
区别 |
GET |
POST |
传输长度 |
长度限制(受限于url长度),一般2KB |
post无限制 |
传输方式 |
地址栏传输 |
报文传输 |
用途 |
查询 |
增删改数据 |
数据包数量 |
一个TCP数据包 |
两个TCP数据包 |
安全性 |
不安全 |
相对安全 |
回退 |
在浏览器回退时是无害的 |
POST会再次提交请求 |
缓存 |
会被浏览器主动缓存 |
不会被主动缓存 |
历史记录 |
会被完整保留在浏览器历史记录里 |
不会保留 |
参数类型 |
只接受ASCII字符 |
无限制 |
编码 |
只能URL编码 |
POST支持多种编码方式 |
注意️:并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。
参考:
https://www.jianshu.com/p/d0e76ba01c1c
https://www.cnblogs.com/weibanggang/p/9454581.html
https://zhidao.baidu.com/question/567658249.html
https://blog.csdn.net/kahhy/article/details/81563063
MDN: https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Methods/OPTIONS
HTTP请求方式及常见问题的更多相关文章
- 限制action所接受的请求方式或请求参数
原文:http://www.cnblogs.com/liukemng/p/3726897.html 2.限制action所接受的请求方式(get或post): 之前我们在HelloWorldContr ...
- Android——JDK的get请求方式
layout文件: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:an ...
- 第二节(RequestMapping请求方式)学习尚硅谷-springmvc视频教程
项目中,创建测试类SpringMVCTest @Controller @RequestMapping("/springmvc1") public class SpringMVCTe ...
- jQuery中ajax的4种常用请求方式
jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数 ...
- js中同步与异步请求方式
异步请求方式: $.ajax({ url : 'your url', data:{name:value}, cache : false, async : true, type : "POST ...
- WEB API 中HTTP的get、post、put,delete 请求方式
一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...
- Ajax中的get和post两种请求方式的异同
Ajax中我们经常用到get和post请求.那么什么时候用get请求,什么时候用post方式请求呢? 在做回答前我们首先要了解get和post的区别. 1. get是把参数数据队列加到提交表单的A ...
- HTTP 请求方式: GET和POST的比较(转)
GET和POST是HTTP的两个常用方法. 什么是HTTP? 超文本传输协议(HyperText Transfer Protocol -- HTTP)是一个设计来使客户端和服务器顺利进行通讯的协议 ...
- jQuery中的Ajax几种请求方式
1. load( url, [data], [callback] ) :载入远程 HTML 文件代码并插入至 DOM 中. url (String) : 请求的HTML页的URL地址. data (M ...
随机推荐
- 八张图彻底了解JDK8 GC调优秘籍-附PDF下载
目录 简介 分代垃圾回收器的内存结构 JDK8中可用的GC 打印GC信息 内存调整参数 Thread配置 通用GC参数 CMS GC G1参数 总结 简介 JVM的参数有很多很多,根据我的统计JDK8 ...
- SpringMVC 学习笔记(三)数据的校验
34. 尚硅谷_佟刚_SpringMVC_数据绑定流程分析.avi 例如:在jsp中输入一个String字符串类型,需要转换成Date类型的流程如下 convertservice对传入的数据进行转换 ...
- CentOS 7 安装VNC
VNC需要系统安装的有桌面,可以进行下面操作安装GNOME 桌面. #列出的组列表里有GNOME Desktopyum grouplist | grep GNOME 安装 yum groupinsta ...
- Laytpl 1.2
https://jeesite.gitee.io/front/laytpl/index.html
- js小案例(排他案例)
描述:点击哪个,哪个就变蓝色,其余的都是粉色 <!DOCTYPE html> <html lang="en"> <head> <meta ...
- 每天一个LINUX命令(pwd)
每天一个LINUX命令(pwd) 基本信息 pwd: /bin/pwd,显示当前路径的绝对路径 语法:pwd 应用程序位置 which pwd PWD作用 pwd --help ...
- 内存疯狂换页!CPU怒批操作系统
内存访问瓶颈 我是CPU一号车间的阿Q,前一阵子我们厂里发生了一件大喜事,老板拉到了一笔投资,准备扩大生产规模. 不过老板挺抠门的,拉到了投资也不给我们涨点工资,就知道让我们拼命干活,压榨我们的劳动力 ...
- 5000+字硬核干货!Redis 分布式集群部署实战
原理: Redis集群采用一致性哈希槽的方式将集群中每个主节点都分配一定的哈希槽,对写入的数据进行哈希后分配到某个主节点进行存储. 集群使用公式(CRC16 key)& 16384计算键key ...
- CSS(三) - 定位模型 - float的几要素
要点 1.浮动盒子会脱离文文档流,不会在占用空间. 2.非浮动元素几乎当浮动盒子根本不存在一样该怎么布局怎么布局不会被影响 3.非浮动元素中的文本内容会记住浮动元素的大小,并在排布时避开它,为其留出响 ...
- SpringBoot日志功能
三.SpringBoot日志功能 1.日志框架 市面上的日志框架: JUL.JCL.Jboss-logging.Logback.Log4j.Log4j.SLF4J... 日志门面(日志的抽象层) 日志 ...