我正在为我们的应用程序开发一个新的RESTful Web服务.
在某些实体上执行GET时,客户端可以请求实体的内容.如果他们想要添加一些参数(例如排序列表),他们可以在查询字符串中添加这些参数.
或者,我希望人们能够在请求正文中指定这些参数. HTTP/1.1似乎没有明确禁止这一点.这将允许他们指定更多信息,可以更容易指定复杂的XML请求.
我的问题:
我正在寻找一个图书馆或数据库,可以根据他或她的名字或昵称猜测一个人是男性还是女性.就像是
john => "M",
mary => "F",
alex => "A", #ambiguous
Run Code Online (Sandbox Code Playgroud)
我正在寻找支持英文名称以外的名字的东西(如日语,印度语等).
在我得到另一个答案之前,"你将通过假设他们的性别/性别冒犯别人"让我清楚,我的申请不会与任何人互动.无论如何,它不会发送电子邮件或联系任何人.没有用户要问.在许多情况下,有关人员已经死亡,我所拥有的唯一信息是姓名,出生日期和死亡日期.我想知道个人性别的原因是为了使输出的语法更好,并有助于可能的后期搜索.
我发现自己需要:
var self = this;
Run Code Online (Sandbox Code Playgroud)
在我的javascript'类'中有很多.尽管通常这样做,但感觉有点不对劲.我希望在这个问题中找到的是一个更好的方法来处理这个问题,或者说服一些东西来说服这个问题是非常好的.
这是保持正确绑定的标准方法吗?我应该在任何地方标准化使用'self',除非我明确需要'this'.
编辑:我确切地知道为什么我需要这个,我只是想知道它是否被认为有点邪恶,为什么.我知道在调用方法时还有'apply'内置的javascript函数来显式定义范围.好点吗?
我想允许将非常大的文件上传到我们的PHP应用程序中(数百个megs - 8演出).然而,这有几个问题.
浏览器:
服务器:
要求:
为了提高性能,我想要尝试消除一个简单的"会话cookie",但加密cookie本身的所有信息.
一个非常简单的例子:
userid= 12345
time=now()
signature = hmac('SHA1',userid + ":" + time, secret);
cookie = userid + ':' + time + ':' + signature;
Run Code Online (Sandbox Code Playgroud)
时间将用于最长的到期时间,因此cookie不会永久存在.
现在提出一个大问题:这是一个坏主意吗?
我最好使用AES256吗?在我的情况下,数据不是保密的,但在任何情况下都不得更改.
编辑
经过一些好的评论和评论,我想补充一下:
最后一点:我正在尝试提出减少数据库负载的解决方案.这只是我正在研究的解决方案之一,但这是我的最爱.主要原因是我没有必要考虑更适合这种数据的其他存储机制(memcache,nosql),它使Web应用程序更加"无状态".
我正在寻找我的HD上的空闲字节数,但是在python上这样做很麻烦.
我尝试过以下方法:
import os
stat = os.statvfs(path)
print stat.f_bsize * stat.f_bavail
Run Code Online (Sandbox Code Playgroud)
但是,在OS/X上它给了我一个17529020874752字节,大约是1.6 TB,这将是非常好的,但不幸的是不是真的.
达到这个数字的最佳方法是什么?
我想在我们的基础架构上实现一个基于REST的新API,而OAuth似乎是要走的路.
对于我们的实现,首先将是服务器到服务器访问,这将是完全不受限制的.我相信这被称为双腿授权.
稍后,我们希望允许浏览器使用API,这将使我们的授权变成三条腿.
实施这个有一个很好的起点吗?我们如何完全授权服务器并在未来添加受限授权?
OAuth规范在这些场景中并没有真正的帮助,但我认为这意味着我们需要为服务器到服务器访问创建一个永不过期的会话,然后再添加对于仅用户API具有有限访问权限的普通会话.
我希望找到更多信息的起点,让我知道!
OAuth对我来说?我只是在寻找经过身份验证的请求系统,在这种情况下只存在消费者和服务提供者.最终用户不参与游戏!
在我正在研究的应用程序中,我发现了一个弱逃逸函数来防止注入.我试图证明这一点,但我在提出一个简单的例子时遇到了麻烦.
escape函数的工作原理如下(PHP示例).
function escape($value) {
$value = str_replace("'","''",$value);
$value = str_replace("\\","\\\\",$value);
return $value;
}
Run Code Online (Sandbox Code Playgroud)
我意识到这不涉及使用双引号(")编码的值,但所有查询都是使用单引号(')构造的.
谁可以打败这个逃脱功能?
要求:
简单的例子:
$sql = "SELECT id FROM users WHERE username = '" . escape($username) . "' AND password = '" . escape($password) . "'";
$sql = "UPDATE users SET email = '" . escape($email) . "' WHERE id = '" . escape($id) . "'";
Run Code Online (Sandbox Code Playgroud) 我们正在为我们的应用程序部署memcached,我想尽可能地让它变得耐用.
我们计划使用更新的memcacheD扩展.
我还没有想到的一件事是,如果其中一台服务器死机会发生什么.至少看起来memcached客户端只是'放弃'在该服务器上,并且不存储任何内容.
这个行为我很好.我们可以处理一堆缓存未命中.然而,在其中一个服务器被视为"失败"后,后续集合并被重新分配给剩余的服务器将是很好的.
因为这似乎不会自动发生; 我想解决这个问题的唯一方法是让外部系统对memcached系统进行健康检查,并适当更新服务器列表.
但是如果有一个包含10个服务器的列表,并且让我们说,第5个死了......即使使用Ketama-hashing,这似乎会触发重新分配密钥(这只是基于常识).
所以理想情况下,我只想简单地看一下服务器关闭的PHP扩展,将其标记为指定的时间(10分钟),并在这10分钟内回退到其他服务器(很好地分布)的集合和获取.
别人怎么解决这个问题?
编辑:澄清我的libketama点.
假设我们有10台服务器:
1,2,3,4,5,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)
其中一人死亡.然后,Libketama将提供一个非常高的可能性,即丢失的服务器的命中率平均分配给剩余的服务器:
1,2,3,4,inactive,6,7,8,9,10
Run Code Online (Sandbox Code Playgroud)
但是:如果我们手动提供和管理此列表,则情况并非如此:
1,2,3,4,6,7,8,9,10 // There are now 9 servers!
Run Code Online (Sandbox Code Playgroud)
6现在将获得5个以前的密钥,7个将获得6个.8将获得7,9将获得8,10将获得9.第10台服务器过去获得的所有命中都不会均匀分布在其余服务器中.导致几乎50%的密钥被发送到新服务器的可能性很高.
我们目前正在调查Twitter Bootstrap.
到目前为止,我听到很多人都兴奋地说话.所以我们正在审查这个问题,并且很难找到一些有关为什么提交像bootstrap这样的东西也可能是一个坏主意的意见.
这对我来说很重要,可以得到一些清晰的画面.很多框架都有一些趋势,对于早期的快速开发非常有用,但随着应用程序的发展,它会受到阻碍.
所以我不想听到为什么Bootstrap是好还是坏,我会立即关闭这个问题,但我很想知道是否有更多的阅读材料可以帮助做出明智的决定.