HTTP请求

来源:互联网 发布:环信java需要哪些jar包 编辑:程序博客网 时间:2024/06/11 10:48

一、DNS解析过程:

1.浏览器搜索自身的DNS缓存(缓存时间比较短,大概只有1分钟,且只能容纳1000条缓存)2.搜索操作系统自身的DNS缓存(浏览器没有找到缓存或缓存已失效)3.读取本地的HOST文件(未找到)4.浏览器会向宽带运营商发起一个DNS的系统调用5.宽带运营商服务器查看本身缓存6.运营商服务器发起一个迭代的DNS解析请求(根域{单个句点(.)或句点用于末尾的名称},顶级域(COM、NET、ORG 、CN等),域名注册商(万网,新网等))

二、浏览器获得域名的IP地址后,发起“三次握手”,建立TCP/IP连接。

1.浏览器会以一个随机端口(1024 < 端口 < 65535)向服务器的WEB程序(常用的有httpd,nginx等)80端口发起TCP的连接请求。这个连接请求(原始的http请求经过TCP/IP4层模型的层层封包)到达服务器端后(这中间通过各种路由设备,局域网内除外),进入到网卡,然后是进入到内核的TCP/IP协议栈(用于识别该连接请求,解封包,一层一层的剥开),还有可能要经过Netfilter防火墙(属于内核的模块)的过滤,最终到达WEB程序。

三、在TCP/IP连接建立后,浏览器就可以向服务器发送HTTP请求了。

四、服务器端接收到请求,根据路径、参数,把经过后端处理的结果以数据的形式(包括完整的HTML页面)返回给浏览器。

五.浏览器拿到数据,解析和渲染这个页面。(解析HTML页面中js、css、图片等资源时、同样是一个个http请求。)

HTTP三点注意事项:

HTTP是无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。HTTP是媒体独立的:这意味着,只要客户端和服务器知道如何处理的数据内容,任何类型的数据都可以通过HTTP发送。客户端以及服务器指定使用适合的MIME-type内容类型。HTTP是无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快

状态码:

1XX请求已接收,正在处理XX2XX,,请求接受成功,处理完成,成功返回,200=0k3XX,,重定向4XX,,客户端错误,400 有语法错误不能理解,401请求未授权,403拒绝提供服务,404 未找到改地址,对象不存在5XX,,服务器端错误,500服务器发生未知错误,503服务器端当前不能处理

好文推荐:http://www.mamicode.com/info-detail-1357508.html

更详细的请看原文:http://blog.csdn.net/sinat_21455985/article/details/53508115

0 0
原创粉丝点击