http请求的请求体对应哪个类 http命令详解?

[更新]
·
·
分类:互联网
4354 阅读

http请求的请求体对应哪个类

http命令详解?

http命令详解?

请求方法是请求一定的Web页面的程序或用于特定的URL。
可选用下列几种: GET: 请求指定的页面信息,并返回实体主体。 HEAD: 只请求页面的首部。 POST: 请求服务器接受所指定的文档作为对所标识的URI 的新的从属实体。 PUT: 从客户端向服务器传送的数据取代 。

get和post请求的区别及优缺点?

首先GET和POST是HTTP请求的两种基本方法,要说它们的区别,接触过WEB开发的人都能说出一二。
一般来说,我们会从三个点回答
1、GET把参数包含在URL中,POST通过request body传递参数。所以相比GET,POST要更加安全
2、数据库层面GET具有幂等性和安全性,POST不符合
3、其他层面:GET可以被缓存、被存储,而POST不行
但是很可惜,这不是面试官想要的答案?来吧,solo一波把。真正想要的回答是个啥玩意。
回归本质,其实GET和POST是HTTP协议中的两种发送请求的方法。
那么HTTP是什么?
HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。
HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。
那么,“标准答案”里的那些区别是怎么回事?
GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。 GET和POST的重大区别,简单的说:
GET产生一个TCP数据包;POST产生两个TCP数据包。详细来说见如下过程:
post请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送post请求头(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回100 Continue响应
(5)浏览器发送数据
(6)服务器返回200 OK响应
get请求的过程:
(1)浏览器请求tcp连接(第一次握手)
(2)服务器答应进行tcp连接(第二次握手)
(3)浏览器确认,并发送get请求头和数据(第三次握手,这个报文比较小,所以http会在此时进行第一次数据发送)
(4)服务器返回200 OK响应
也就是说,目测get的总耗是post的2/3左右,这个口说无凭,网上已经有网友进行过测试。
所以这才是GET比POST更快的根本原因,但是再网速情况好的时候可以忽略不记,但是差的时候就可以体现出来了。
那么回答的标准答案可以怎么说呢:
(1)post更安全(不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中)
(2)post发送的数据更大(get有url长度限制)
(3)post能发送更多的数据类型(get只能发送ASCII字符)
(4)post比get慢,get和post请求的过程中GET产生一个TCP数据包;POST产生两个TCP数据包。
(5)post用于修改和写入数据,get一般用于搜索排序和筛选之类的操作(淘宝,支付宝的搜索查询都是get提交),目的是资源的获取,读取数据,而post用来提交数据。所以GET具有幂等性和安全性,POST不符合