17道Java基础面试题!收藏吃灰!( 七 )


3、 数据类型:GET请求只允许ASCII字符 , 因此无法用来传送二进制数据或者很大的ASCII数据 。POST请求则没有这些限制 。这意味着GET请求不能用于上传文件或图片等二进制数据 , 而POST请求可以 。
4、 安全性:在某种程度上 , POST方法比GET方法更安全 , 因为GET请求中的数据会在URL中显示出来 , 而POST请求中的数据则不会 。但是 , 无论是GET还是POST , 如果没有使用HTTPS , 数据都是明文传输的 , 都不是真正安全的 。这意味着GET请求可能会暴露敏感信息给第三方 , 而POST请求则相对隐私一些 。
5、 可见性:GET请求的数据在URL中是可见的 , 而POST请求的数据则不会显示在URL中 。这与安全性有关 , 也影响了用户体验和美观性 。
6、 幂等性:GET方法是幂等的 , 意味着无论进行多少次操作 , 结果都是相同的 。而POST不是幂等的 , 因为每次操作都可能产生不同的结果 。这意味着GET请求可以重复执行而不会改变资源状态 , 而POST请求可能会导致资源状态发生变化或产生副作用 。
7、 缓存:GET请求的结果会被浏览器默认缓存 , 除非明确指定不缓存 。而POST请求的结果不会被浏览器缓存 。这意味着GET请求可以提高响应速度和效率 , 而POST请求则需要每次向服务器发送数据并等待响应 。
8、 历史/书签:GET请求的URL会被浏览器记录在历史记录中 , 或者可以被添加到书签中 。POST请求则不会 。这意味着GET请求可以方便地回溯或收藏 , 而POST请求则不具备这些功能 。
9、 服务器处理:对于GET请求 , 服务器会将GET请求和数据一起接收 。对于POST请求 , 服务器先接收到HTTP头 , 然后是数据 。这意味着GET请求更简单快速 , 而POST请求更复杂耗时 。
以上这些区别决定了GET通常用于获取/查询资源信息 , 而POST通常用于更新资源信息 。
Session, Cookie的区别是什么?Session和Cookie都是在客户端和服务器之间维持状态的技术 。由于HTTP是无状态的 , 这意味着每个请求都是相互独立的 , 服务器无法识别两个请求是否来自同一个客户端 。因此 , 为了跨请求保持状态 , 我们使用Cookie和Session 。但是 , 它们之间有一些关键的区别:
存储位置:

  • Cookie数据存储在客户端(浏览器) 。
  • Session数据存储在服务器端 。
存储内容:
  • Cookie只能存储ASCII的字符串 , 不能用于存储复杂的信息 , 而且存储量有限(每个域的Cookie总量通常限制为4KB) 。
  • Session可以存储任何类型的数据 , 包括字符串、数字、数据对象等 , 存储量几乎没有限制 。
生命周期:
  • Cookie有明确的过期时间 , 过期后将被删除 , 但在此之前一直有效 , 即使用户关闭浏览器或重启计算机也不会消失 。
  • Session的生命周期通常由服务器设置 , 一般情况下 , 当用户关闭浏览器或长时间不活动(超过Session的超时时间)时 , Session就会结束 。
安全性:
  • Cookie存储在客户端 , 相对来说安全性较低 。如果存储的信息包含敏感数据 , 可能会被恶意用户利用 。
  • Session存储在服务器端 , 安全性较高 。用户只能通过Session ID来访问Session数据 , 而这个Session ID在网络上传输时 , 可以通过Cookie、URL重写或隐藏表单字段等方式传输 。
跨域:
  • Cookie支持跨域名访问 , 但需要设置Cookie的domain和path属性 。
  • Session不支持跨域名访问 。
性能:
  • 由于Cookie直接存储在客户端 , 所以在使用时几乎不会对服务器性能产生影响 。
  • 大量的Session可能会占用服务器的内存资源 , 因此需要合理使用 。
实际上 , Session和Cookie经常会一起使用 。例如 , 会话ID通常存储在Cookie中 , 并在用户的每次请求中发送给服务器 , 以识别对应的Session 。
Statement与PreparedStatement的区别,什么是SQL注入 , 如何防止SQL注入?Statement与PreparedStatement的区别


推荐阅读