暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

面试官:HTTP的请求方式有哪些?我竟然懵了

山河与you皆无恙 2021-09-17
325

TTP的请求方式:

  1. OPTIONS:返回服务器针对特定资源锁支持的HTTP 请求方法。也可以利用向 Web 服务器发送 “*” 的请求来测试服务器的功能性。

  2. HEAD:向服务器索要与 GET 请求相一致的响应,只不过响应体将不会返回,这一个方法可以在不必传输整个响应内容的情况下,就可以获取包含在 响应消息头中的元信息。

  3. GET:向特定的资源发出请求。

  4. POST:向指定的资源提交数据进行处理请求(例如提交表单或者提交文件)。数据被包含在数据体中。POST请求可能会导致新的资源的创建,或已有资源的修改。

  5. PUT:向指定资源位置上上传其最新内容。

  6. DELETE:请求服务器删除 Request-URL 所标识的资源。

  7. TRACE:回显服务器收到的请求,主要用于测试或诊断。

  8. CONNECT:HTTP1.1协议预留给能够将连接改为管道方式的代理服务器。

虽然 HTTP 的请求方式有8种,但是我们在实际应用中也就是get和post,其他请求方式也可以通过这两种方式间接来实现。

具体看看get和post有那些区别:

分类

GET
POST

后退按钮/刷新
无害数据会被重新提交(浏览器应该告知用户数据会被重新提交)
书签
可收藏为书签不可收藏为书签
缓存
能被缓存
不能缓存
编码类型
application/x-www-form-urlencodedapplication/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。
历史
参数保存在浏览器历史中参数不会保存在浏览器历史中
数据长度的限制
当发送数据时,GET 方法向 URL 添加数据;URL 长度是受限制的(URL 的最大长度是20048个字符)无限制
数据类型的限制
只允许ASCII字符
POST 比 GET 更安全,因为参数不会保存在浏览器历史或 Web服务器日志中
可见性
数据在 URL 中对所有人都是可见的数据不会显示在 URL 中

以上是w3cschool的图解答案。看了几个技术博客,很多大佬说GET和POST本质上没有区别,都是HTTP协议中两种发送请求的方法。

HTTP的底层是TCP/IP,所以GET和POST的底层也是TCP/IP,GET和POST都是TCP 连接,它们做的事情都是一样的。

误区一:GET的安全性没有POST安全性高。

    发现有两个图是用来验证的很好的体现了 POST 和 GET 请求显示的信息对比,由于是别人的,就我自己看看得了,可以抄袭一部分不能全抄不是,做人留一线,日后好相见。

    从传输的角度来说,它们都是不安全的,因为HTTP在网络上是明文传输的,只要在网络节点上捉包,就能完整的获取数据报文,要想安全传输,就只有加密,也就是HTTPS。

误区二:对数据长度的限制

    HTTP协议没有Body和URL的长度限制,对URL的限制大多是浏览器和服务器的原因。浏览器原因就不说了,服务器是因为处理长 URL 要消耗比较多的资源,为了性能和安全(防止恶意构造长URL 来攻击)考虑,会给 URL 长度加限制。

PUT和POST的区别:

PUT 请求:如果两个请求相同,后一个请求会把前一个请求覆盖掉。(所以PUT用来修改资源)

POST请求:后一个请求不会把前一个请求覆盖掉。(所以POST用来增资源)

    


文章转载自山河与you皆无恙,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论