XMLHttpRequest实例状态
XMLHttpRequest的几种状态
0 对象没有完成初始化
1 对象开始发送请求
2 对象的请求发送完成
3 对象开始读取服务器响应
4 对象读取服务器响应结束
DNS
地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。
查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。
根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。
本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。
最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问
服务器如何识别是你在操作
①当浏览器首次访问服务器时,服务器会为客户端创建一个session(每个用户独有的房间,用来存放这个对象的相关信息和内容),并通过特殊算法算出一个sessionID(类似于双方都知道的唯一暗号),用来标识该session对象。
②当浏览器再次(session还在有效时间内)向服务器请求资源的时候,浏览器将sessionID和请求内容一起发送到服务端。服务端通过对比自身存储的sessionId来判断用户之前是否存在,并返回对应的内容给不同用户。
③因为标识符存在内存里,所以当浏览器关闭时,浏览器保存的sessionId就会消失。服务器将匹配失败,默认为此请求是新用户提出的,如上文顺序,重新创建一个session容器,和相应的唯一sessionId,返回给浏览器。
一分钟专业解释:
① 服务器在响应头内加上”Set-Cookie:XXXXXXXXXXXXX“(相当于一个唯一的ID符),此信息是服务器随机生成的,放在服务器内存里,不会重复,这就是sessionid。
②当浏览器得到这个sessionid会将它放在自己的进程内存里,.然后你继续发请求给这个网站的时候,浏览器就会把这个sessionid放在请求头里发送给该服务器了,这样服务器得到sessionid后再和自己内存里存放的sessionid对比锁定客户端,从而区分不同客户端,完成会话.
③关闭浏览器结束进程,则这个sessionid将消失,如果用户又打开浏览器想继续这次会话的时候,就会因为发送的请求中没有这个sessionid,而使服务器无法辨别请求身份。
浏览器的渲染流程
1 解析HTML文件,创建DOM树
2 解析CSS:优先级:浏览器默认设置<用户设置<外部样式<内联样式<HTML中的style样式
3 将CSS与DOM合并,构建渲染树
4 布局和绘制,重绘(repaint)和重排(reflow)
重排:若渲染树的一部分更新,且尺寸变化,就会发生重排;
重绘:部分节点需要更新,但不改变其他集合形状。如改变某个元素的颜色,就会发生重绘
IE浏览器的兼容问题
1 块属性标签float之后,又有横向的margin值,在IE6中显示会比设置的大(IE6双边距bug)
2 设置较小的高度标签(一般小于10px),在IE6,IE7,会超出自己设置的高度,解决办法:设置较小的高度标签(一般小于10px),在IE6,IE7,遨游中超出自己设置的高度
3 图片默认有间距,解决方案:使用float为img布局
4 给一个元素设置了高度和宽度的同时,还为其设置margin和padding的值,会改变该元素的实际大小。解决办法:在需要加 margin和padding的div内部加一个div,在这个div里设置margin和padding值
Session
session是存放在服务器的内存中里,所以session里的数据不断增加会造成服务器的负担,所以会把很重要的信息存储在session中,session的信息是通过sessionid获取的,而sessionid是存放在会话cookie当中的,当浏览器关闭的时候会话cookie消失,所以sessionid也就消失了,但是session的信息还存在服务器端。一般session是和cookie结合起来使用的
URL的各个部分
例如:scheme://host:port/path?query#fragment
1 .scheme:通信协议,常用的http,ftp,maito等
2 .host:主机,服务器(计算机)域名系统 (DNS) 主机名或 IP 地址
3 .port:端口号,整数,可选,省略时使用方案的默认端口,如http的默认端口为80
4 .path:路径,由零或多个"/“符号隔开的字符串,一般用来表示主机上的一个目录或文件地址
5 .query:查询,可选,用于给动态网页传递参数,可有多个参数,用”&“符号隔开,每个参数的名和值用”="符号隔开
6 .fragment:信息片断,字符串,用于指定网络资源中的片断。例如一个网页中有多个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点)