小编mea*_*ode的帖子

Firefox会话cookie

一般来说,当给定一个没有有效期的cookie时,现代浏览器会认为这个cookie是一个"会话cookie",他们会在浏览会话结束时删除cookie(通常是在浏览器实例关闭时).

IE,Opera,Safari和Chrome都支持这种行为.

然而,firefox(3.0.9最新版本)似乎没有遵循这条规则,我可以告诉它在浏览器关闭时,或者当用户注销或重新启动操作系统时不会使cookie过期.

那么,为什么firefox将它们称为会话cookie,当它们无限期地持续存在时呢?

有谁知道Firefox如何处理会话cookie过期?

cookies session firefox

104
推荐指数
2
解决办法
7万
查看次数

如果REST上的事务无法实现,REST如何才能真正有用?

在查看REST时,可能任何人都会注意到的第一件事是没有定义任何事务语义,有人说这是隐含的反对什么是REST,而其他人说任何这样做的尝试都会导致"污染"REST系统.

但是,为了论证,REST确实成为了一种流行的"api"选择,并且宇宙中的每个站点都开始暴露出宁静的切入点.

如果没有交易行为,我们究竟如何可以使用(我说的是非补偿)?因为在我看来,REST的一个好处就是它打破了数据的组成部分,你会认为这会让智能客户端从多个服务组成数据(并添加和调整这些组合数据).但是,如果我无法原子地和孤立地对这种数据组合进行更改,那么使用REST就变得毫无用处.

随着时间的推移和对严肃数据展示的需求的到来,我们将需要的东西是:简单(REST在那里获胜),并支持事务行为,因此我们可以可靠地操作这些数据.

现在,我已经在我的研究中多次阅读了一个特定的论点,它与我们应该如何考虑REST中的事务有关,给出的例子是购物车,你隐含地因为购物车而被隔离是你的.

但是我不同意这个论点,首先,购物车的隔离只是方便,这不是交易隔离......如果我同时对我的购物车进行操作,而我的应用程序的某些部分正在读取数据,会发生什么从中?我不希望我的应用程序的阅读部分看到"仍在交易中"的数据.

更不用说并非所有数据更改都具有隐式事务模型,因此多个服务上的事务肯定不会.

在我看来,事务需要发生,并且需要以一种方式发生,使得实际的REST调用不知道事实(增加其余的有效负载是一个很大的不,但添加标题是正常的).

我已经阅读了一些关于如何通过REST创建事务模型的建议,并且编写的一些规范似乎是最新的.

有没有真正的想法?不应该存在比REST更多的东西,以便REST可以利用REST的简单性来处理固态数据操作('酸'事务).

如果不是,我们期望真正提高赌注,并告诉服务开发人员,如果他们想要在纯粹的数据世界中进行交互,他们需要支持像肥皂那样单一的东西吗?或者更糟糕的是尝试将自己的自定义事务支持构建到REST之类的东西中,使每个服务都不标准并打破REST的全部功能?

提前感谢任何想法.


编辑,添加简短场景:

想象一下处理专辑创建的客户表单,为了方便该专辑,而不是要求用户给艺术家资源uri,他们可以从艺术家列表中选择(最有可能从艺术家目录中获取) .

为了便于使用,客户可以手动编写艺术家姓名,以便他们可以在发布方案中创建艺术家'内联'..客户端代码理解这一点,在发送创建相册的请求之前,它首先尝试确定如果艺术家已经存在,如果是的话,获得该艺术家的uri,否则创造艺术家并获得艺术家uri.

客户端代码然后继续创建专辑,这是比通常的客户端更聪明,它不是坐​​在REST和"哑巴"发布之上,而是有一些处理更纯粹的REST逻辑的交互.

然而,在这种情况下,如果首先创建艺术家,除非专辑是,否则保证不创建艺术家将是很好的.

这不像交易所暗示的那样"关键",但是它定义了一组客户端代码更愿意作为一个操作发生的工作(毕竟,它使这看起来像是对用户的单个操作).

我在这种情况下看到的唯一指导是让客户端在专辑创建失败的情况下进行补偿操作,特别是要求删除艺术家.但这似乎有问题,因为客户假设艺术家是孤立的,尽管可能不太可能,如果另一个客户已经'看到'那位艺术家并分配给它,会发生什么?

这些是我关于进行数据更改的问题,虽然肯定存在其他差距(谁说艺术家不能在以后删除),但这些操作并不透明(即,操作不是通过客户端,但用户特别要求的东西).

我希望这有助于阐明一些话题.

rest standards web-services transactions

70
推荐指数
4
解决办法
3万
查看次数

在准备状态之前操作dom是否可以?

这通常是我如何管理渐进增强同时保持体验清洁,但它有多安全?是否存在竞争条件,这不起作用?

想象一下简单的抽象场景,如果你有javascript支持,你想要以不同的方式显示...这通常是我最终会做的事情:

<div id="test">original</div>
<script type="text/javascript">
    var t = document.getElementById('test');
    t.innerHTML = 'changed';
</script>
Run Code Online (Sandbox Code Playgroud)

许多人可能会声称你应该使用一个框架并等待一个domready事件,并在那里进行更改..但是有一个显着的延迟,其中'test'元素已经在文档结束之前呈现并且css已经准备好了一个domready触发..因此导致明显的'原始'闪烁.

此代码是否容易出现竞争失败?或者我可以保证一个元素是可发现的并且如果它存在于脚本之前可以修改吗?

提前致谢.

javascript dom progressive-enhancement domready

10
推荐指数
1
解决办法
5116
查看次数

使用浏览器应发送到重定向位置的HTTP重定向发送信息?

这是可能的......例如,假设我用302(或303)响应请求,并通知浏览器对给定位置发出请求..是否有可以通过HTTP 302发送的标头,以便来自浏览器的后续请求将包含该标头?

我知道我可以使用位置标题执行此操作,如重定向并将URL中的信息指定为查询字符串..但我想知道是否有更好的方法..它似乎应该是一个合法的场景. .

'内容已经移动,转到这里..哦,你会想带上这个给予重定向位置'

我猜一个大胖子不!

提前致谢.


编辑

这样做的原因在于PRG模式,你有一个GET url和POST url,假设你发布数据并且它是不可接受的,服务器将你重定向到GET,并做一些'魔术'以便'发送数据'到该GET,最常使用会话状态来存储变量.

然而,在许多这些PRG请求发生的情况下,这可能会崩溃,这被认为这不是常见的情况,通常没有人需要担心这个......但如果你这样做 - 你需要一种方法来识别请求,这可以完成在302中发送的查询字符串参数,以便根据该请求将特定条目置于会话状态.

问题是关于尝试从网址中删除"请求密钥",并使其更加隐含.. cookie'看起来'可以工作,但它们只会使螺丝钉的窗口变小.

如果你去我指定的'位置',发送这些参数会很棒.


编辑

请注意,我并不是试图让浏览器向该位置发送任意标头,但是如果有任何标头旨在提示请求的上下文(如查询字符串参数可以).

http http-redirect http-headers

9
推荐指数
1
解决办法
9673
查看次数

这是实现"记住我"功能的合理方式吗?

如果用户登录该网站,并说"记住我",我们会获得该用户的唯一标识符,使用密钥大小为256的RijndaelManaged加密,并将其放入一个设置过期的httponly cookie中.120天,每次成功请求刷新到服务器的到期时间.

可选地,我们基于用户代理和ipv4地址的一部分(最后两个八位字节)生成初始化向量.

显然,没有真正的到期系统,用户可以在技术上永远使用这个加密密钥(假设我们不更改服务器端密钥).

我考虑过这样一个事实,即允许这个功能,我需要允许用户绕过登录并给我他们唯一的ID(这是一个guid),我认为单独的guid很难猜到一个真正的用户guid,但是会让网站开放受到生成guid的botnots的攻击(我不知道他们找到一个合法的guid是多么现实)..所以这就是为什么服务器知道加密密钥的加密,以及可选的iv特定于浏览器和ip部分.

我是否应该考虑服务器发出与用户关联的票证的不同方法,并且这些票证将具有已知的到期日期,以便服务器保持对期满的控制权?我真的应该关心到期吗?还记得我记得我吗?

期待被贬低;),干杯.

security authentication remember-me rijndaelmanaged

8
推荐指数
1
解决办法
1579
查看次数

检查类型是否支持使用.NET将隐式或显式类型转换为其他类型

想象一下,您已经获得了两个System.Type,并且您想确定是否存在从一个到另一个的隐式或显式类型转换.

如果没有专门检查静态方法,是否有内置方法来确定该类型是支持这些转换还是这些转换?

我知道这是一个简短的问题,但我认为这个场景相对容易解释,如果不是,请告诉我.

斯蒂芬,提前谢谢.

c# reflection type-conversion

8
推荐指数
2
解决办法
1957
查看次数

使用版本控制时,处理多台计算机上的web.config差异

我确信每个人都必须处理这些情况,我们检查我们的源代码控制解决方案,每台开发机器都有自己的资源用于调试,构建和测试.

最常见的是:

  • Web服务器(IIS)
  • 数据库(SQL)

Web服务器易于处理,每个开发机器都有自己的proj.user文件来指定不同的调试信息.

但应用程序的连接字符串存储在web.config(受源代码管理)下,理想情况下我们不希望web.config"知道",因此必须执行配置部分,我们将它们委托给其他配置文件(不在sc下)不是最好的解决方案..

asp.net(.net?)已经支持一个具有web.config继承的模型,这将是一个理想的场景..但是这仅适用于目录.

如果我们能做到的话会很棒

  • web.config < - 在版本控制下
  • web.machine.config < - 不受版本控制

当然,我愿意为人们如何解决这个问题提供更好的建议.

喜欢..也许有:

  • web.base.config < - 在版本控制下
  • web.machine.config < - 不受版本控制

有一个构建脚本通过合并它们创建web.config?

斯蒂芬,提前谢谢.


编辑

看起来下一个vs可能有办法处理这个:

http://blogs.msdn.com/webdevtools/archive/2009/05/04/web-deployment-web-config-transformation.aspx


编辑编辑

可能今天使用xml批量更新:

http://blogs.microsoft.co.il/blogs/dorony/archive/2008/01/18/easy-configuration-deployment-with-msbuild-and-the-xmlmassupdate-task.aspx


编辑编辑编辑

那么它当然可以用一个简单的xslt构建任务和一个复制所有东西并拦截某些属性的小变换.只是尝试了一个概念验证,这将为我们节省很多挫折,但转换文件可能比人们更多愿意接受.

基本上我们在版本控制中存储Web.base.config,并通过转换运行它以在构建事件上生成Web.config.

看起来像vs2010将真正有助于拥有更友好的版本.

msbuild xslt version-control web-config

7
推荐指数
2
解决办法
4267
查看次数

表关系的最佳模式设计,可强制执行完整性

给定一个模型'A'表,可以有多个子模型'B',其中'B'将有一个或多个子模型'C'......这听起来很简单,但我需要对每个'A'强制执行',任何'B'必须有一个独特的'C'集合..例如,C不能是两个'B'的孩子,它们是同一个父母'A'的一部分..但是'C'可以是一个孩子多个'B'给出每个'B的父'A'是不同的...

这有意义还是我应该对我的场景进行模糊处理?提前喝彩!

请注意,我知道此策略将在应用程序中强制执行,但我不希望数据库处于无效状态.

编辑:大家好,很棒的反馈,所以首先我要感谢大家与我分享你的知识.

为了澄清这种情况,我将解释一下情况,但这里有一些注意事项:

'A'具有零个或多个'B','B'隐含地与'A'相关联,并且因此总是只有一个'A'的孩子.'C'在某种程度上是与许多'B'以及数据库中的其他元素相关联的根实体.


这是真实的故事:

这是一个包含许多简报(A)的网站,许多成员(C),简报可以有很多提交(B),其中提交将始终有一个或多个相关成员.这个想法是提交实际上可以是一种协作,每个成员都没有比其他成员更多的"权力",但是会有一个不同的系统来验证成员如何一起工作的政策.

因此,简而言之,成员只能提交一份提交,而提交可以有许多成员(协作者).

希望有所帮助,但我想你已经给了我很多帮助!

史蒂夫.

database schema-design

6
推荐指数
1
解决办法
454
查看次数

CSS流体'专栏'

什么是在CSS中获得此布局的最佳方式?想象我有两个div,两个内部div中的两个div,第一个具有特定的宽度设置,第二个div预计会占用剩余的空间.

一般来说,我最终会在第二列上设置一个特定的宽度,并在包含div宽度改变的最后管理更新.

如果我浮动固定而不是流体,流体柱将包裹在固定的div下面(不是想要的).

+-------+  +--------------------------------------+
| fixed |  |                                      |
+-------+  |               fluid                  |
           |                                      |        
           |                                      |
           +--------------------------------------+

<div>
  <div>fixed</div>
  <div>fluid</div>
</div>
Run Code Online (Sandbox Code Playgroud)

这必须是一个完全css的解决方案,没有javascript框架 - 理想情况下,最常用的浏览器可以使用最少的"hackage"(如果有的话).

希望ASCII艺术作品,

谢谢.

css layout

5
推荐指数
1
解决办法
5452
查看次数

Actionscript:NetStream在缓冲后口吃

使用NetStream从http流式传输内容,我注意到某些导出的h264的esp,如果玩家遇到空缓冲区,它将停止并缓冲到所请求的长度(如预期的那样).

然而,一旦缓冲区已满,播放就不会恢复,而是向前跳跃,因此 - 在短时间内立即播放缓冲的持续时间,从而再次触发空缓冲区......然后这将一遍又一遍地继续.

据推测,当网络流暂停缓冲时,播放头位置继续,并且播放器在恢复时尝试捕捉到该位置 - 但是考虑到可能需要5秒钟来构建2秒缓冲区 - 它最终会再次使用无用的缓冲区.

(这是假设)

我试图通过侦听空缓冲区netstatus事件,暂停流,同时设置一个循环来检查当前缓冲区长度与请求的缓冲区长度来解决这个问题.一旦缓冲区长度为大于或等于请求的缓冲区..但是当没有足够的视频剩余时,这会导致问题...例如,10秒缓冲区只剩下5秒,循环只是坐在那里等待缓冲区长度只剩下5个人的10秒......

您可能会认为您可以简单地检查哪个更小,剩余时间或请求的缓冲区长度..但闪存提供的时间不准确..

如果添加净流当前时间索引加上缓冲时间,则总数不是影片的整个持续时间(在结束时).它接近但不相同.

这让我回到原来的问题,如果还有另一种方法可以解决这个问题,那么显然flash会知道缓冲区什么时候准备就绪,那么如何在缓冲时获得闪存暂停,并在缓冲区准备就绪后恢复?目前它没有..它暂停,然后一旦缓冲区已满 - 它在大约.1秒内播放整个缓冲内容.

斯蒂芬,提前谢谢.

flash video streaming actionscript-3

4
推荐指数
1
解决办法
5309
查看次数