我正在设计一个小型的网络应用程序/游戏.什么会更好:MySQL表或json文件?它们都存储信息.它们都可以通过PHP解析.有什么优点/缺点?
这就是我的意思:
username | password
-------------------
seefour | abc123
Run Code Online (Sandbox Code Playgroud)
与
{
"username":"seefour",
"password":"abc123"
}
Run Code Online (Sandbox Code Playgroud)
编辑:哇,自从我提出这个问题以来仅仅3年了,看到自从我提出这个问题以来我已经成熟了多少,我感到很惊讶.从未来的我到过去的我,这就是为什么这两个不起作用.(如果当时像我这样天真的人可以参考这个)
我曾经认为这两者是可以互换的,因为它们几乎都是存储信息的方式,尽管当时存储和使用JSON文件对我来说更容易.数据库是独立的软件,可以更快地检索数据,并且不会随着时间的推移而变得臃肿.此外,在一个或两个文件中携带所有数据会使得最终导致数据被盗或丢失变得非常容易,因为数据库使用这些数据更加安全.从根本上说,数据不应该是您的代码的一部分; 它应该是您的代码使用的单独的东西.
此外,您将了解几年后的哈希和盐析,所以不要以明文形式存储密码!
所以我一直在尝试理解WebFinger (RFC7033) 并偶然发现了Web Host Metadata (RFC6415)。据我所知,它们都是 RFC,并且以几乎相同的方式解决相同的问题。
因此,如果我想通过 URI 查找有关人或物的信息,我可以做两件事:
/.well-known/webfinger?resource=.../.well-known/host-meta返回 JRD 或 XRD 的内容,例如<link rel="lrdd" template="http://example.com/lrdd?uri={uri}">Webfinger 只是少了一次查找并鼓励 JRD。为什么我不能只创建一个host-meta看起来像http://example.com/.well-known/webfinger?resource={uri}并且做这两件事(尽管是多余的)的模板?
我所缺少的两者之间有什么重要的区别吗?我应该选择其中之一而不是另一种吗?
{"error" : 401}当我尝试使用oauth2gem 在ruby上使用OAuth进入Reddit时,我一直在努力.维基页面说这是因为凭据不正确或不存在,但我很肯定我有正确的凭据:
require "oauth2"
require "base64"
reddit = OAuth2::Client.new ENV["API_ID"], ENV["API_SECRET"], \
:authorize_url => "https://ssl.reddit.com/api/v1/authorize",
:token_url => "https://ssl.reddit.com/api/v1/access_token",
:site => "https://oauth.reddit.com/api/v1/"
state = Digest::SHA1.hexdigest rand(36**8).to_s(36)
redirect_uri = "http://localhost:8080/oauth2/callback"
params = {"scope" => "identity",
"response_type" => "code",
"redirect_uri" => redirect_uri,
"state" => state,
"duration" => "permanent"
}
puts reddit.auth_code.authorize_url params
# Get the url with the code that reddit redirects to
redir = gets.chomp.strip
code = redir.match(/code=([^&]*)/).captures
returned_state = redir.match(/state=([^&]*)/).captures
raise "State does not Match!" unless …Run Code Online (Sandbox Code Playgroud) 对不起,我不知道如何解释这个解释.下面两段代码之间有什么区别(如果有的话)?
class Foo
def initalize
end
end
class Foo
def self.new
allocate
end
end
Run Code Online (Sandbox Code Playgroud)
此外,下面初始化类的两种方法之间的区别是什么:
Foo.new
Foo.allocate
Run Code Online (Sandbox Code Playgroud)