b/s数据流过程
2015-06-28 10:38
218 查看
用servlet做request请求回应的数据流回应过程:
1.客户端浏览器打包要发送的数据data对象request,
数据包对象request分两部分:
1.1.header
请求方法request: GET / HTTP/1.1
接受什么样的内容格式:Accept text/html, application/xhtml+xml, */*
接受什么样的coding格式:gzip, deflate
接受什么样的内容语言:Accept-Language
zh-CN
接受底层tcp连接状态:Connection Keep-Alive ------客户端和服务器端连接一次后,第二次就会使用第一次连接
禁止被追踪:DNT 1
客户端主机信息:Host localhost:9999
客户端浏览器信息:User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
2.浏览器底层分析域名找到接受ip
2.1分析hosts文件域名对应的ip地址
2.2如果2.1没有找到域名对应的ip地址,就交给电信服务提供商DNS域名解析服务器解析
3.物理数据层,ip网络层,转发数据包,发送到服务器组装数据data对象request
4.服务器tomcat解析数据对象request
4.1.tomcat根据server.xml已经配置好的<server>查找<service>服务
4.2.<service>服务根据<Connector>端口port匹配对应哪个协议类处理,如80端口发送接受的数据属于protocol="HTTP/1.1",转发另外端口处理
redirectPort="8443",最后协议处理类protocol="org.apache.coyote.http11.Http11NioProtocol"
5.tomcat用对应的协议类分析request对象后,找对应servlet类处理(这里服务器端具体的业务逻辑),生成回应response对象,发送回浏览器
6.浏览器接受到response对象,解析,显示。
综述,
数据流发送是一条线,线的每个过程都有相应的作用,数据不断的被包装,发送,分拆,解析。
1.客户端浏览器打包要发送的数据data对象request,
数据包对象request分两部分:
1.1.header
请求方法request: GET / HTTP/1.1
接受什么样的内容格式:Accept text/html, application/xhtml+xml, */*
接受什么样的coding格式:gzip, deflate
接受什么样的内容语言:Accept-Language
zh-CN
接受底层tcp连接状态:Connection Keep-Alive ------客户端和服务器端连接一次后,第二次就会使用第一次连接
禁止被追踪:DNT 1
客户端主机信息:Host localhost:9999
客户端浏览器信息:User-Agent Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; Touch; rv:11.0) like Gecko
2.浏览器底层分析域名找到接受ip
2.1分析hosts文件域名对应的ip地址
2.2如果2.1没有找到域名对应的ip地址,就交给电信服务提供商DNS域名解析服务器解析
3.物理数据层,ip网络层,转发数据包,发送到服务器组装数据data对象request
4.服务器tomcat解析数据对象request
4.1.tomcat根据server.xml已经配置好的<server>查找<service>服务
4.2.<service>服务根据<Connector>端口port匹配对应哪个协议类处理,如80端口发送接受的数据属于protocol="HTTP/1.1",转发另外端口处理
redirectPort="8443",最后协议处理类protocol="org.apache.coyote.http11.Http11NioProtocol"
5.tomcat用对应的协议类分析request对象后,找对应servlet类处理(这里服务器端具体的业务逻辑),生成回应response对象,发送回浏览器
6.浏览器接受到response对象,解析,显示。
综述,
数据流发送是一条线,线的每个过程都有相应的作用,数据不断的被包装,发送,分拆,解析。
相关文章推荐
- 三种安卓模拟器的安装和比较
- 使用百度地图API开发定位应用
- spring集成struts2
- OJ—— 复数类--重载运算符2+
- 文章标题
- 火光冲2米高 以为是特效 现场燃灼性不明粉末扩散 负责人已被带走
- Kinect for Windows V2.0 新功能
- 在Win7 x64和Python 3.4下,运行Theano的dbn.py
- 学习笔记——ARM Cortex-M0 存储器系统
- Spring中@Autowired注解、@Resource注解的区别
- 【Android】图片资源的访问与网格式图片浏览器
- 【LeetCode】004 Median of Two Sorted Arrays 两个排序数组合并后的中位数
- Android Studio走过的坑
- Linux内存管理
- Largest Number -- leetcode
- 面试题21:包含min函数的栈
- Android 旋转ImageView
- 大数据算法学习笔记(2):大数据算法
- CSS实现背景透明,文字不透明(各浏览器兼容)
- 【Objective-C】OC基础