post、get的区别

答: GET把参数包含在URL中,POST通过request body传递参数。
GET请求在URL中传送的参数是有长度限制的,而POST没有。
使用post提交的页面在点击【刷新】按钮的时候浏览器一般会提示“是否重新提交”,而get则不会;
用post可以进行文件的提交,而用get则不可以。
POST的安全性要比GET的安全性高
GET 请求可被缓存,POST 请求不会被缓存
GET 请求保留在浏览器历史记录中,POST 请求不会保留在浏览器历史记录中

PUT和POST的区别

1、PUT请求时,如果用相同参数访问二次接口,PUT仅会产生一条记录,后一个请求会把第一个请求覆盖掉。

使用场合例如:

用户的账户二维码只和用户关联,而且是一一对应的关系,此时这个api就可以用PUT

2、POST请求时,如果用相同参数访问二次接口,Post 会产生多条记录

使用场合例如:

在我们的支付系统中,一个api的功能是创建收款金额二维码,它和金额相关,每个用户可以有多个二维码,如果连续调用则会创建新的二维码,这个时候就用POST

Rest模式有四种操作,
POST /uri 创建
DELETE /uri/xxx 删除
PUT /uri/xxx 更新或创建
GET /uri/xxx 查看
GET操作是安全的。所谓安全是指不管进行多少次操作,资源的状态都不会改变。比如我用GET浏览文章,不管浏览多少次,那篇文章还在那,没有变化。当然,你可能说每浏览一次文章,文章的浏览数就加一,这不也改变了资源的状态么?这并不矛盾,因为这个改变不是GET操作引起的,而是用户自己设定的服务端逻辑造成的。
PUT,DELETE操作是幂等的。所谓幂等是指不管进行多少次操作,结果都一样。比如我用PUT修改一篇文章,然后在做同样的操作,每次操作后的结果并没有不同,DELETE也是一样。顺便说一句,因为GET操作是安全的,所以它自然也是幂等的。
POST操作既不是安全的,也不是幂等的,比如常见的POST重复加载问题:当我们多次发出同样的POST请求后,其结果是创建出了若干的资源。
安全和幂等的意义在于:当操作没有达到预期的目标时,我们可以不停的重试,而不会对资源产生副作用。从这个意义上说,POST操作往往是有害的,但很多时候我们还是不得不使用它。

Cookie与Session的区别
答:1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能 考虑到减轻服务器性能方面,应当使用COOKIE。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、所以,将登陆信息等重要信息存放为SESSION,其他信息如果需要保留,可以放在COOKIE中。
6、session会在浏览器关闭或者一段时间内销毁而cookie将持久化的存放在客户端

cookie与session如何联系与通信的

  用户首次与Web服务器建立连接的时候,服务器会给用户分发一个 SessionID作为标识。SessionID是一个由24个字符组成的随机字符串。用户每次提交页面,浏览器都会把这个SessionID包含在 HTTP头中提交给Web服务器,这样Web服务器就能区分当前请求页面的是哪一个客户端。这个SessionID就是保存在客户端的,属于客户端Session。其实客户端Session默认是以cookie的形式来存储的。
Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。
为防止内存溢出,服务器会把长时间内没有活跃的Session从内存删除。这个时间就是Session的超时时间。如果超过了超时时间没访问过服务器,Session就自动失效了。
当然我们客户端可以禁用cookie,这时候服务器端就拿不到sessionID。

Session有什么重大BUG,微软提出了什么方法加以解决?
答:是iis中由于有进程回收机制,系统繁忙的话Session会丢失,可以用Sate server或SQL Server数据库的方式存储Session不过这种方式比较慢,而且无法捕获Session的END事件。

详细介绍Session缓存和Cache缓存的区别。

答:(1)最大的区别是Cache提供缓存依赖来更新数据,而Session只能依靠定义的缓存时间来判断缓存数据是否有效。

(2)即使应用程序终止,只要Cache.Add方法中定义的缓存时间未过期,下次开启应用程序时,缓存的数据依然存在。而Session缓存只是存在于一次会话中,会话结束后,数据也就失效了。

(3)Session容易丢失,导致数据的不确定性,而Cache不会出现这种情况。

(4)由于Session是每次会话就被加载,所以不适宜存放大量信息,否则会导致服务器的性能降低。而Cache则主要用来保存大容量信息,如数据库中的多个表。

(5)Session目前只能保存在内存中,对其性能有影响。

为了提高Cache的有效利用率,建议对于不经常改动的数据使用Cache

如果在一个B/S结构的系统中需要传递变量值,但又不能用Session、Cookie、Application,你有几种方法进行处理。
答:1. Get(即使用QueryString显式传递)
方式:在url后面跟参数。
特点:简单、方便。搜索
缺点:字符串长度最长为255个字符;数据泄漏在url中。
适用数据:简单、少量、关键的数据。
适用范围:传递给自己、传递给另一个目标页面;常用于2个页面间传递数据。
用法:例如:url后加?UserID=…,跳转到目标页面,目标页面在伺服端可用Request.QueryString["InputText"]获取其指定参数值。
2. Post
方式:通用的方式。利用form提交。
特点:最常用的方法。常用技巧是把隐秘的数据存在隐藏域中由form提交。
适用数据:大量数据,包括文件上传。
适用范围:同Get方法
用法:在客户端form指定action目标后submit、在asp.net的伺服端中使用server.Transfer(url)
3. 页面对象的属性
方式:asp.net特有方式 。利用HttpContext获取发请求的页面的信息。
特点:可以直接存储对象。
缺点:注意强制转换的类型要正确。
适用数据:各种数据。
适用范围:页面之间传递复杂数据。
用法:获取Context.Handler将其转换为发请求的页面的实例,随后就可以轻松访问其form中的字段、甚至属性。其中的Context是指HttpContext对象,Handler是其属性,Context.Handler的意思可以理解为创建源页类的实例变量,而得到此实例之后,就可以直接访问其中的属性和Public方法了。
4. cookie
方式:将数据存在客户端的经典方法。
缺点:安全性低、受客户端设置限制、一个站点仅存20个cookie,每个容量4096字节。
有效期:自定义或被用户清除
适用数据:用户的会话数据(一般是用户名,用户的个性化设置信息等)
适用范围:单个用户、整个站点所有页面
用法:引用Request.Cookies(读取信息)、Response.Cookies(写入信息)、或用HttpCookieCollection直接创建Cookie对象。
5. Session
方式:将用户数据存储在服务端。
特点:asp.net中可以设置session的存储方式、位置、SessionID的保存是否依赖cookie。
可以直接存储对象。
缺点:asp.net中有失效的隐患
有效期:用户活动时间+自定义延迟。
适用数据:用户的特有信息。
适用范围:单个用户、整个站点所有页面。
用法:Session["CollectionName"] = value/object;
6. Cache
方式:将用户数据存储在伺服端数据缓存中。
特点:可以大大提高效率。 可以直接存储对象。
缺点:数据更新不及时。
有效期:应用程序生命周期或自定义。
适用数据:所有页面、所有用户都可以共享的数据。
用法:Cache["CollectionName"] = value|object;
7. Appliction
方式: 将数据存储于此,相当于全局变量。
特点:可以直接存储对象。整个站点的共享数据。
有效期:应用程序生命周期。
适用数据:所有页面、所有用户共享的数据。
用法:Appliction["CollectionName"] = value|object;
8. ViewState
方式:asp.net特有机制,用来恢复页面状态。
特点:将页面各控件及其所存数据序列化存在name为_ViewState的隐藏域中。
缺点:存在HTML中,安全性较低。可以设置加密和验证,但数据量会大增、效率有影响。
适用数据:页面PostBack需要保存的数据,数据太大会影响页面发送效率。
适用范围:页面自身数据保存。
用法:ViewState["CollectionName"] = value;
9. Static
方式: 将数据存于静态变量中。
特点:利于提高效率。
缺点:若用不好会致使用户或页面间数据紊乱,造成极大的隐患。建议只赋值一次,绝对禁止为单个用户而更改此值。
适用数据:所有用户共享的数据。
适用范围:此类所有的页面实例。
用法:在class中声明静态变量。
整理:
页面自身保存数据可用的有ViewState,static变量。
页面之间传递数据常用get,post,HttpContext,当然可以变通一下用于自身数据保存。
单用户的所有页面数据共享常用session,cookie,当然也可以应用在以上两种情况。
整个应用程序(所有用户所用页面)的数据共享常用Appliction,cache,static变量。
建议在用Request的时候要指明所取的集合,比如Get方法传来的参数从QueryString集合取,Post的从Form取,cookie从Cookies里取。虽然用Request[]集合,以上几种都可以取到,但是却造成性能上的浪费,本来直接在Form集合中,却遍历了QueryString,Form,Cookies等集合才取出来。

转载于:https://www.cnblogs.com/shy1766IT/p/10909689.html

C#问答题与附解收集(三)相关推荐

  1. ViewPager 详解(三)---PagerTabStrip与PagerTitleStrip添加标题栏的异同

     相关文章: 1.<ViewPager 详解(一)---基本入门> 2.<ViewPager 详解(二)---详解四大函数> 3.<ViewPager 详解(三)-- ...

  2. BIND配置文件详解(三)

    本文档摘录自<BIND9管理员手册>,如果有不对或者不清楚的地方,请大家告诉我,谢谢!   BIND配置文件详解(三)   7.server语句 服务器(server)语句的定义和使用: ...

  3. ansible自动化运维详解(三)ansible常用模块续

    文章目录 ansible自动化运维详解(三)ansible常用模块续 四.ansible常用模块(2) 4.10.yum_repository 4.11.dnf 4.12.service 及 fire ...

  4. Element Plus 实例详解(三)___Date Picker 日期选择

    Element Plus 实例详解(三) ___Date Picker 日期选择 文章目录: 一.前言 二.搭建Element Plus试用环境 1.搭建Vue3项目(基于Vite + Vue) 2. ...

  5. 【FFmpeg】ffmpeg命令详解(三)高级选项

    ffmpeg命令详解(三)高级选项 1.-map 2.-ignore_unknown 3.-copy_unknown 4.-map_channel 5.-map_metadata 6.-map_cha ...

  6. IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(上)...

    IIS负载均衡-Application Request Route详解第三篇:使用ARR进行Http请求的负载均衡(上) 在前两篇文章中,我们已经讲述如何配置与安装ARR,从本篇文章开始,我们将重点的 ...

  7. 大型企业网络配置系列课程详解(三)--OSPF高级配置与相关概念的理解

    大型企业网络配置系列课程详解(三)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office&qu ...

  8. java同步异步调用_详解java 三种调用机制(同步、回调、异步)

    1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,jsPwwCe它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消 ...

  9. 详解ISA2006三种客户端

    详 解ISA2006三种客户端<?XML:NAMESPACE PREFIX = O /> 上一篇我们介绍了如何部署ISA2006,本文我们要让部署好的ISA来干活了.ISA能干什么活?从字 ...

最新文章

  1. android SurfaceView
  2. 汇编: 用int中断改变ip,实现loop循环
  3. Effective Java读书笔记一:并发
  4. dump查询Java 状态
  5. 前端学习(3199):jsx小练习
  6. deebot扫地机器人怎么清洁_扫地机器人清洁力拼杀,科沃斯机器人DEEBOT N3与小米1S对比评测...
  7. android elf 加固_APK一键自动化加固脚本
  8. GDI+ 中发生一般性错误(在 OutputStream 中保存 PNG 格式图像时遇到的问题)
  9. Vc6.0 调试指南 --Happy Debugging
  10. 杰控连接mysql_杰控FameView在数据库连接和查询方面的应用
  11. JDK6升级JDK8踩雷
  12. 在html显示php代码,html跳转php只显示源代码
  13. PHP手机网店管理系统
  14. 【用友凭证打印】自定义纸张尺寸对照表
  15. oracle数据比对md5,MD5SUM的妙用
  16. L1-061 新胖子公式 (10 分)
  17. 台式计算机耗电,台式电脑和笔记本耗电量对比,分别是多少?
  18. 谋时而动 顺势而为 “软件定义智能新时代”
  19. 新一代科学计算与系统建模仿真平台MWORKS发布预告
  20. 宝付正式执行“适当降低小微企业支付手续费”工作部署任务

热门文章

  1. 五星级酒店遇见世界级AI:未来智能生活的样貌清晰可见了
  2. Google C++ Style Guide - Google C++ 风格指南
  3. FPGA 开发板的 I/O BANK 电路 - xc7a35tftg256-1
  4. 无限试驾2 服务器,《无限试驾 2》PC版本配置需求公布
  5. 如何使用matplotlib绘制表格-plt.table()
  6. java基础实现拼图游戏
  7. 【强化学习】你应该理解的一些关键概念
  8. 牧牛区块链教育,区块链技术如何助力农村环保
  9. WordPress无插件外链转内链代码
  10. C语言条件判断语句:if、else if、else