GET和POST究竟有啥不同呢?

在这里插入图片描述

GET和POST究竟有啥不同呢?

前提

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q69YRqTB-1605788309176)(img-20201119195346585.png)]

1.当输入url之后,按下回车键发生了哪些动作?

  1. 当浏览器输入url,先解析url地址是否合法.
  2. 浏览器检查是否存在缓存(浏览器缓存-系统缓存-路由器缓存),如果缓存都没有,看第三步.
  3. 发起Http请求前,需要进行域名解析(DNS解析),发送请求数据包.
  4. 发起TCP连接,经过三次握手.
  5. 握手成功,浏览器向服务器Http请求数据包.
  6. 服务器收到请求后,将数据返回给浏览器
  7. 浏览器接收到返回的的响应.
  8. 浏览器解析响应.如果响应可以存入缓存,则存入缓存.
  9. 浏览器发送请求获取嵌入在HTML中的资源(html、css、js、image等)
  10. 页面加载异步请求
  11. 页面的渲染—全部结束

2.GET和POST

  1. GET请求的参数通过URL传递的,POST请求的参数会放在请求体中
  2. GET请求比POST请求更不安全,因为参数直接暴露在URL中,所以GET请求不能够用来传递敏感信息
  3. GET请求在url中传递的参数有长度的限制的(在HTTP协议中并没有对url的长度进行限制,限制是在特定的浏览器以及服务器对它的限制,不同的浏览器限制的长度都不同。),POST没有。
  4. GET请求参数hi完整的保留在浏览器的历史记录中,POST请求的参数不会保留。
  5. GET请求进行url编码(百分号编码),POST请求支持多种编码方式.
  6. GET请求产生的URL地址是可以被bookmarks(存书签),POST请求不可以.
  7. GET请求在浏览器回退的时候是无害的,POST请求会再次提交数据.
  8. GET请求再浏览器中可以被主动cache,而POST请求不会,可以手动设置.

深入:

  1. GET和POST本质上没有什么区别

  2. GET和POST是什么

    Http协议中的两种发送请求的方法,本质都是在进行TCP连接.

  3. GET和POST有一个重大的区别:

    • 简单来说:GET产生一个TCP数据包,POST产生TCP数据包

    • 复杂的说:

      • 对于GET方式的请求,浏览器会把Http header和data一起发送出去,服务器返回200 OK.
      • 对于POST请求,浏览器先发送header,服务器响应100(已经收到请求的第一部分,正在等待其余部分),浏览器在发送data,服务器返回200 OK.
  4. 是不是POST请求需求两部,时间上消耗会比GET请求更多? 答:不是

    1. GET请求和POST请求都有自己的语义,不能随便混用.
    2. 在网络环境好的情况下,发送一次包的时间和发送两次包的时间差别可以无视,在网络环境差的情况下,发送两次包的TCP在校验数据完整性上,有很大的优势.
    3. 并不是所有浏览器都会在POST请求中发送两次包.比如:火狐
  • 9
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
RestTemplate 和 Apache HttpClient 都是在 Java 中用于 HTTP 请求的客户端库,它们有以下相同点和不同点: 相同点: 1. 都可以用于发送 HTTP 请求和接收 HTTP 响应。 2. 都支持设置请求头、请求体、响应解码等功能。 3. 都可以在请求过程中添加拦截器。 4. 都可以处理 HTTP 响应状态码和异常。 不同点: 1. RestTemplate 是 Spring 框架中的一个 HTTP 客户端,它是基于 Java 的 URLConnection API 实现的。而 Apache HttpClient 是 Apache 基金会的一个 HTTP 客户端,它是一个独立的库。 2. RestTemplate 可以轻松地与 Spring 框架集成,可以方便地使用 Spring 的依赖注入和属性配置。而 Apache HttpClient 不依赖于任何框架,可以在任何 Java 应用程序中使用。 3. RestTemplate 支持多种 HTTP 请求方法,包括 GET、POST、PUT、DELETE 等等,而 Apache HttpClient 支持的 HTTP 请求方法更加丰富,包括 TRACE、OPTIONS、HEAD 等等。 4. RestTemplate 支持使用消息转换器来将请求和响应转换为 Java 对象,例如将 JSON 格式的响应转换为 Java Bean。而 Apache HttpClient 不支持消息转换器,需要开发者自己处理响应内容。 5. RestTemplate 的请求执行方式是阻塞式的,即会一直等待服务器响应后才返回结果。而 Apache HttpClient 支持异步请求执行,可以在等待服务器响应的同时执行其他任务。 综上所述,RestTemplate 和 Apache HttpClient 都是优秀的 HTTP 客户端库,开发者可以根据自己的需求来选择使用。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值