访问网页

http://fex.baidu.com/blog/2014/05/what-happen/
http://blog.csdn.net/xiao__gui/article/details/17298437
http://www.cnblogs.com/dolphinX/p/3460545.html
http://blog.csdn.net/cxm_hwj/article/details/6690058
http://blog.csdn.net/xiaotian15/article/details/8625302
http://blog.csdn.net/world_hello_100/article/details/18601715

0.输入url,回车。浏览器会先查看缓存,接着调用不同平台下网络请求的方法。

1.發送請求時需要建立一個socket連接,建立連接需要ip和端口號,所以之前要經過一次DNS解析获得ip。
DNS查询是基于UDP来实现的。chrome使用QUIC协议,是UDP转发HTTP请求

2.連接建立成功後,開始向服務器發送請求(GET或者POST方式)
GET方式的格式:GET / 路徑(即所訪問的文件名)/ HTTP/1.0(即瀏覽器使用的HTTP版本)。例如:GET/mytest/index.html HTTP/1.0

3.服務器收到請求後,進行處理。比如瀏覽器需要訪問 mytest文件下的index.html,服務器找到該文件後,把該文件內容傳送給相應的瀏覽器。
為了回應瀏覽器,服務器首先傳送一些HTTP頭信息,然后传送HTTP体信息(即具体内容),头信息与体信息之间用一个空格隔开。
常用的HTTP头信息有:
HTTP 1.0 200 OK 这是服务器回应的第一行,即服务器正在运行的HTTP版本号 和 应答代码 (200 OK表示请求完成)
MIME_Version:1.0 这是指MIME类型的版本
CONTENT_TYPE: 这是指HTTP体信息的MIME类型。例如CONTENT_TYPE:text/html 表示传送的数据是HTML文档
CONTENT_LENGTH: 这是指HTTP体信息的长度(字节)。

4.当应答结束后,浏览器和服务器的socket连接断开。(不是session连接断开,session会在无任何操作的情况下生存20分钟。)

既然浏览器Http协议是基于TCP的,为什么还要Session?
最近看到不少同学在问这样的一个问题:经常用的浏览器应用层采用的是http的协议,传输层是基于TCP的,我们都知道TCP是基于链接的协议,也就是说,在向服务器发送数据之前,必须先和服务器建立链接,这一点很重要,这是TCP协议所规定了的。那么有人就开始问了,既然浏览器是的本质上还是采用了基于链接的传输协议,那么为啥还要去开辟一个Session对象来存放一些临时数据呢?我们都知道开辟Session的目的就是为了解决客户端(浏览器)和服务器端断开的问题,Session主要就是记录一些客户端(浏览器)的一些用户信息。既然是基于TCP连接的,按理说就不需要Session了,开辟Session是不是多此一举啊?
问这样的问题,其实也不见怪,我觉得还是我们宏观领域和微观领域的认识的差异。我这样说吧,Htpp是基于TCP连接的这没错。但是我想说的是,这里的连接是一个“连接动作”,是一个“瞬时状态”,(注意:我在这里特意给“瞬时状态”打了一个引号,其实浏览器在想服务器发送数据的额时候是有时差的,也就是说在真正意义上来说并不是时间点,而是一个很短的时间段,因为很短,所以我才说成是“瞬时状态”),并不是我们生活中所说的连接是一直处于不间断的连接,这里的连接是一个“连接状态”,是一个“长时状态”,可见此连接非彼连接啊,也就是说浏览器端和服务器端只有在浏览器向服务器发送数据的那一瞬间是连接起的,当服务器把响应的数据全部发送到浏览器之后,浏览器就和服务器又断开连接了。这是浏览器用户的一些信息就需要一个地方来保存了啊,这时Session就派上用场了。很多人都在用Session ,但是为什么要有Session这个对象,估计部分初学者还是没搞得太明白。希望,博友看了这篇随笔之后,对你有一定帮助。

LCD 屏幕上的每个物理像素点实际上是由红、绿、蓝 3 种色彩的点组成,每个颜色点能单独控制,下面是用显微镜放大后的情况
http://fex.baidu.com/img/what-happen/Liquid_Crystal_Display_Macro_Example_zoom_x1.jpg
从上图可以看到每 3 种颜色的滤光片都全亮的时候就是白色,都灭就是黑色,如果你仔细看还能看到有些点并不是完全黑,这是字体上的反锯齿效果。
通过这 3 种颜色亮度的不同组合就能产生出各种色彩,如果每个颜色点能产生 256 种亮度,就能生成 256 * 256 * 256 = 16777216 种色彩。
并不是所有显示器的亮度都能达到 256,在选择显示器时有个参数是 8-Bit 或 6-Bit 面板,其中 8-Bit 的面板能在物理上达到 256 种亮度,而 6-Bit 的则只有 64 种,它需要靠刷新率控制(Frame rate control)技术来达到 256 的效果。
如何控制这些颜色点的亮度?这就要靠液晶体了,液晶体的特性是当有电流通过时会发生旋转,从而将部分光线挡住,所以只要通过电压控制液晶体的转动就能控制这个颜色点的亮度,目前手机屏幕中通常使用 TFT 控制器来对其进行控制,在 TFT 中最著名的要数 IPS 面板。
这些过滤后的光线大部分会直接进入眼睛,有些光还会在其它表面上经过漫(diffuse)反射或镜面(specular)反射后再进入眼睛,加上环境光的影响,要真正算出有多少光到眼睛是一个积分问题,感兴趣的读者可以研究基于物理的渲染。
当光线进入眼睛后,接下来就是生物学的领域了,所以我们到此结束。

public static void main(String[] args) throws Exception {
    // 地址localhost,端口号8080  
    Socket socket = new Socket("localhost", 8080);    

    // 请求服务器  
    OutputStream out = socket.getOutputStream();  
    PrintWriter pw = new PrintWriter(out);  
    pw.println("GET /Test/test.jsp HTTP/1.1");  // 请求的第一行Request-Line,需要写请求的URL(/Test/test.jsp)  
    pw.println("Host: localhost:8080");  // 请求头,Host是必须的  
    pw.println();  // 一定要有个空行表示请求结束  
    pw.flush();  // 提交请求  

    // 获取服务器响应  
    InputStream is = socket.getInputStream();
    InputStreamReader reader = new InputStreamReader(is);

    // 输出响应内容    
    while (true) {
        System.out.print((char)reader.read());
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值