薛定谔的风口猪

站在巨人的肩膀上学习,猪都能看得很远

Cookie 与 Session的区别

我们有时候会对于cookiesession糊涂,因为总的来说,他们都是保存用户信息的,而有时候我们在浏览器中选择“delete cookies”的时候,为什么session就没了呢?感觉这两个东西是不是一样的?

其实不是。

session是服务端的文件用于存储用户信息,而cookie是存储用户信息的客户端文件。

cookie是一个短的字符串,用于在客户端和服务端来回发送。我们可以保存类似于name=bob&password=asdf在cookie然后在两端来回发送。 这样做就像,去银行办业务,而银行的业务员极为健忘,然后他需要我们每次进行交易的时候都出示身份。当然,如果我们用cookie取存储这种敏感的信息的话是极为不安全的,而且cookie本身也有大小的限制。

那么,如果这个业务员意识到了自己的健忘病,他可以在纸上记下你的相关信息然后递给你一个号码,然后以后你再办业务的时候你就可以简单的说 “我是12号客户”,这样就不需要每次都出示身份证啊,银行个人账号去标识自己了。

对应着在Web服务器,服务器会记录相关的信息在一个session对象,然后创建一个session ID然后发送给客户端保存在cookie中。当客户端发送这个cookie回来的时候,服务端就能简单的用session ID去查找session对象。

所以,如果我们删除了cookie(如在浏览器中清空历史记录),这个session就丢失了。

还有一种方法是,用URL来交换session id,例如有一个link www.myserver.com/myApp.jsp, 然后我们可以重写每一个url让他成为类似于www.myserver.com/myApp.jsp?sessionID=asdf 甚至even www.myserver.com/asdf/myApp.jsp 用于标识session id

更多解析,可参考stackoverflow: Differences between cookies and sessions?

Windows7上配置和使用Octopress

本文翻译自: setup octopress on windows 7


准备工作:

  1. 安装Git
  2. 安装ruby,例如:Ruby 1.9.3-p194,并配置环境变量PATH 到rubyhome/bin
  3. 安装 Development Kit.如 use DevKit-tdm-32-4.5.2-20111229-1559-sfx.exe and 解压到文件夹 C:/RubyDevKit.
  4. 建立一个文件夹,例如在C:/github

配置Octopress:

cd c:/github
git clone git://github.com/imathis/octopress.git octopress #clone一个仓库,此处替换 octopress 成为 username.github.io
cd octopress #进入clone出来的项目
ruby --version # 应该会报出ruby 版本如 Ruby 1.9.3

然后进行相关初始化:

cd C:/RubyDevKit
ruby dk.rb init
ruby dk.rb install

安装依赖:

cd c:/github/octopress #replace octopress with username.github.io
gem install bundler//若出现https连接不上,到home目录下找.gemrc文件,然后在source修改https为http
bundle install   //若需要代理,提前设置相关环境变量:export http_proxy=http://user:password@host:port。若https连接不上,到GemFile中的source的https修改为http

安装默认的OctoPress 主题:

rake install

建立Github的仓库

命名为:你的名字.github.io

部署

rake setup_github_pages

这样做的结果是:

  1. 询问你的Github Pages 的仓库URL。
  2. 从origin重命名指向imathis/octopress 的remote 到octopress
  3. 增加你的Github pages 的仓库为默认的 origin remote
  4. 当前branch 从master 转换到source
  5. 配置你的博客url
  6. 在_deploy文件下下配置一个master 分支用于开发

发布:

rake generate
rake deploy

这样就会生成你的博客,复制生成的文件到_deploy/下,并增加到git,commit 和push到master分支。

最后,commit源文件

git add .
git commit -m '提交信息'
git push origin source

现在,访问你的用户名.github.io就可以访问你的博客了。(第一次可能会延迟十几分钟)


新增博文

rake new_post["title"]

这里会生成一个markdown文件到source/_posts下

修改此markdown文件,再次发布,即可看到新的博文。


有关markdown的语法和使用请参看http://wowubuntu.com/markdown/basic.html

更多octopress命令是查看:http://octopress.org/docs/blogging/