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
- HTTP请求
- http请求
- http请求
- HTTP请求
- HTTP请求
- Http 请求
- http 请求
- HTTP请求
- http请求
- http 请求
- HTTP请求
- HTTP请求
- http请求
- http请求
- http请求
- HTTP请求
- http请求
- http请求
- 使用Hibernate时报hibernate Disabling contextual LOB creation as createClob() method threw error
- C++第四次实验
- c++作业四
- 一个事务中既要保存又要更新,需要添加参数
- -bash: wget: command not found 解决方法
- HTTP请求
- 系统的简单注解
- 基于redis分布式缓存实现
- Android ActionBar学习(二) -- 自定义ActionBar Style
- 关于在VS2013中添加头文件和lib的路径
- 在Unity3d中使用GZip来压缩传输数据
- 有关安卓listView里面多个EditText光标获取及软键盘显示切换消失问题
- Caffe源码解析1:Blob
- as 引用库 jar arr os module