如何理解HTTP响应的状态码?

Cookie Git HTML HTTP Session WebSocket 表单 搜索引擎 缓存

我们知道HTTP协议是通过HTTP请求和HTTP响应来实现双向通信的。 HTTP状态码(HTTP Status Code)是用以表示Web服务器HTTP响应状态的3位数字代码,由RFC 2616规范定义。 合理的状态码不仅可以让用户或者浏览器做出更加合适的进一步操作,而且可以让客户端代码更加易于理解和维护。

HTTP状态码分为5类:1xx表示继续发送请求;2xx表示请求成功;3xx表示资源已找到但需要继续进行其他操作; 4xx表示客户端错误;5xx表示服务器错误。下面就具体详述常见状态码的语义,及其使用方式。

关于HTTP协议规范以及状态码在其中的作用,参见:读 HTTP 协议

事件处理中的this:attachEvent, addEventListener, onclick

DOM HTML JavaScript jQuery 事件

事件处理函数中,我们通常使用this来获取当前被操作的对象。这无疑是很方便的一个特性, 但对于不同的事件绑定方式,this可能不一定是当前被操作的对象。 本文便来分析不同的方式绑定事件处理函数时,函数中this的区别。常见的事件绑定方式不外乎4种:

  1. attachEvent:IE9以下(不包括IE9)的MSIE中。
  2. addEventListener:支持DOM Level 2 Event的浏览器中。
  3. el.onclick=function(){}:这是古老的事件绑定方式。
  4. <a onclick='handle()'>:这是最古老的事件绑定方式。
  5. jQuery:jQuery也提供了很多方法来方便地绑定事件。

addEventListener是现代Web应用中绑定事件的终极方法,jQuery从版本2开始也是通过调用addEventListener来实现其事件绑定逻辑 (源码分析参见:DOM Level 2 Event与jQuery源码)。 jQuery的所有事件绑定最终调用的是on方法,参见:jQuery事件:bind、delegate、on的行为与性能

Effective C++ 19:把类的设计视作类型设计

Effective-C++ C++ 接口 类型 设计

在面向对象语言中,开发者的大部分时间都用在了增强你的类型系统。这意味着你不仅是类的设计者,更是类型设计者。重载函数和运算符、控制内存分配和释放、定义初始化和销毁操作……良好的类型有着自然的语法、直观的语义,以及高效的实现。你在定义类时需要像一个语言设计者一样地小心才行!

减少页面重排与重绘(Reflow & Repaint)

CSS DOM JavaScript 重排 重绘

如果你的HTML变得很大很复杂,那么影响你JavaScript性能的可能并不是JavaScript代码的复杂度,而是页面的重排和重绘。

重排(Reflow)是指布局引擎为frame计算图形的过程。 frame是一个矩形,拥有宽高和相对父容器的偏移。frame用来显示盒模型(content model), 但一个content model可能会显示为多个frame,比如换行的文本每行都会显示为一个frame。

关于CSS盒模型的介绍请参考:CSS 盒模型及其呈现方式

重绘(Repaint)发生在元素的可见性发生变化时,比如背景色、前景色等。 因此重排必然会引起重绘。

Cookie/Session的机制与安全

Cookie HTTP Node.js Session 内存数据库 Redis 表单 数据库

Cookie和Session是为了在无状态的HTTP协议之上维护会话状态,使得服务器可以知道当前是和哪个客户在打交道。本文来详细讨论Cookie和Session的实现机制,以及其中涉及的安全问题。

因为HTTP协议是无状态的,即每次用户请求到达服务器时,HTTP服务器并不知道这个用户是谁、是否登录过等。现在的服务器之所以知道我们是否已经登录,是因为服务器在登录时设置了浏览器的Cookie!Session则是借由Cookie而实现的更高层的服务器与浏览器之间的会话。

Cookie是由网景公司的前雇员Lou Montulli在1993年发明的,现今Cookie已经广泛使用了。

cookie

上一页 下一页