bigdog的JAVAEE---客户端与服务器之间的关系

本人男,软件专业,学了三年的云计算(基本上是什么都没有学到),一直在自学JAVA,自己效率也不高,这不,到大三了才开始试着写自己的博客,记录下自己的程序员之路。

本人菜鸟一个,只能写下自己的一些理解和见解,希望大家予以指教,一起进步。

Java-web学习之客户端和服务器之间的关系

一、浏览器如何向服务器发送请求

    浏览器向服务器发送请求主要建立在HTTP协议(hypertext transfer protocol超文本传输协议)的基础上,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。客户端连上web服务器后,若想获得web服务器中的某个web资源,需遵守一定的通讯格式,HTTP协议用于定义客户端与web服务器通迅的格式。

    1:首先从一个URL开始,我们通过这个URL来告诉浏览器我们要去向哪里,寻找什么。

    bigdog的JAVAEE---客户端与服务器之间的关系_第1张图片

    (不好意思,用本机自带的画图软件画的,太丑了)

    我们的浏览器请求这个地址的时候即打开了web服务器HTTP端口的一个套接字,建立了TCP连接。

    接着,我们的浏览器会继续向服务器端发送一段包含我们的请求的报文即request,这段HTTP请求的格式如下:

        

                                 请求行
                  消息报头
                  CRLF(回车符)

                  正文 (get请求没有正文)

    这样,浏览器就发送了我们的请求。

二、服务器接收到请求之后会干什么

    浏览器向服务器发送请求后,服务器接收到请求,首先要解析这个请求,按我们发送的请求报文来定位到我们的资源,即我们打的那句URL。

        1:根据请求里的get/post来选择servlet中对应的 doGet() / doPost()方法来处理,执行我们在后台写的一些操作等等。

               2:处理完之后,由 response 对象得到 java.io.PrintWriter 输出流对象out,通过 out.println(); 将数据以指定的格式输出到输出流。

               3:有请求报文就有响应报文,一个响应报文由四个部分组成:状态行、响应头标、空行、响应数据

三、浏览器如何接收到服务器传回的数据

        服务器在向浏览器端发送过响应报文后,浏览器会根据接收到的响应报文进行解析,实现页面的显示。

        1:浏览器先解析状态行,查看请求是否成功的状态代码。(比如我们常见到的404!)

        2:解析响应头标(比如:ContentType.text/html;charset=gb2312

        3:读取相应数据中的HTML,实现中的内容,如果有其他待实现的资源内容,浏览器会进行再次识别,再次请求,一直循环至实现整个页面。

        4:服务器关闭连接。

以上就是我总结的一些东西,当然,有很多知识书上就有,但是写出来就是为了加深自己的理解,第一次写博客,万事开头难!加油!






你可能感兴趣的:(bigdog的JAVAEE---客户端与服务器之间的关系)