web2.0时代的到来,互联网的网络架构已经逐步替代传统C/S架构.

B/S架构的好处

1 客户端使用统一的浏览器,浏览器具有统一性,不需要配置,使用简单。

2 服务端基于统一的HTTP。 简化的开发

B/S网络架构概述

B/S网络架构得到了简化,是基于统一的应用层协议HTTP来交互。与C/S架构的互联网程序采用长连接的交互模式不同,HTTP采用无状态的短连接通信,通常情况下一次请求就完成了一次数据交互,通常一次请求也对应一次业务逻辑,然后连接就会断开,采用这种方式是为了能够同时服务更多的用户,互联网应用每天都有很多的用户请求量,不可能每一个用户都访问一次就一直保留这个连接。

HTTP请求流程

浏览器输入域名

用户通过浏览器输入域名

请求DNS把域名解析成对应IP地址

互联网都是通过URL来发布和请求资源的,而URL中的域名需要解析成IP地址才能与远程服务器建立连接,将域名解析成IP地址就是DNS解析的工作内容。下面网址有更加详细说明
  http://www.360doc.com/content/13/0527/17/11253639_288596772.shtml

根据IP地址在互联网找到对应服务器

获取IP地址之后就会向对应的远程服务器发起HTTP请求了,发起一次HTTP请求与建立一次Socket连接区别不大,只不过outputStream.wirte() 写的是二进制字节数据格式要符合HTTP。浏览器建立socket连接之前,必须根据地址栏的URL域名解析出来IP地址,然后根据IP+PORT与远程服务器进行连接,然后浏览器根据这个URL组装HTTP请求头,通过outputStream.write()发送到远程服务器,服务器等待inputStream.read()读取请求数据,进行逻辑处理,然后返回数据给浏览器,最后断开连接.

  客户端发送一个HTTP请求到服务器的请求消息包括以下格式:请求行(request line)、请求头部(header)、空行和请求数据四个部分组成

java 请求响应是文件流_服务器

客户端请求方法 http://tools.jb51.net/table/http_request_method
 客户端请求头   http://tools.jb51.net/table/http_header
 服务器响应头   http://www.w3cschool.cn/http/6hafgfmw.html
 HTTP状态码    http://www.w3cschool.cn/http/g9prxfmx.html

服务器根据用户请求进行应答,返回数据

在服务器端接收到请求之后进行逻辑处理,返回结果给浏览器.
  HTTP响应也由四个部分组成,分别是:状态行、消息报头、空行和响应正文。

java 请求响应是文件流_HTTP_02

浏览器对返回数据进行渲染