这是我参与「第五届青训营 」伴学笔记创作活动的第 9 天
关于各种请求方式的总结
在我们日常开发中,我们会遇到和编写各种各样的请求和响应,那么了解它们的涵义和区别是非常重要的,在此笔者给各位罗列了常见的几种请求方式及其区别。
1. HTTP里面GET和POST的区别?
总的来说:
①浏览器和服务器中GET的请求长度和请求头比POST小
②GET请求会把请求参数直接拼接在URL中,而POST请求把请求参数封装到了请求体中
③GET和POST请求报文格式不同
GET请求报文:
GET /updateInfo?name=Javanx&age=25 HTTP/1.1
Host: localhost
POST请求报文:
POST /updateInfo HTTP/1.1
Host: localhost
Content-Type: application/x-www-form-urlencoded
name=Javanx&age=25
④有些浏览器会见POST的header和body分开发送,从而产生两个TCP包,在HTTP中没有硬性规定
2.GET和POST的长度限制是多少?
GET:其实HTTP协议没有对GET请求长度和请求头的长度做限制,只是浏览器和服务器为了性能问题和安全问题对请求长度和请求头做了限制,常见的浏览器处理GET请求一般是2K~8K(FireFox为65536)
3.POST的数据存在Body的最大大小是多少?
POST:HTTP也没有对POST请求体的大小做出限制,起限制作用的是服务器的处理能力,例如修改tomcat.conf目录下的server.xml文件的参数maxPostSize就可以自定义POST请求体的大小(0表示无限制)。
4.其他的请求方式有什么?
OPTIONS : 可以用该请求使服务器传回所支持的所有HTTP请求方法。向Web服务器发送OPTIONS请求,允许客户端查看服务器性能。
HEAD: 与GET方法一样都是向服务器获取指定资源的请求,只不过响应中只有报文信息
GET:请求指定页面信息,并返回实体主体
POST:向服务器提交数据处理请求。数据包含在请求体中。POST请求可能导致新的资源的建立或者已有资源的修改。
PUT : 常用于标识修改更新数据操作
DELETE : 常用于标识删除数据操作
TRACE : 回显服务器收到的请求,主要用于测试和诊断
CONNECT:HTTP/1.1中协议预留给能够将连接改为管道方式的代理服务器。