[计网学习笔记(2)] Web应用

        对于不同的网页对象(包括图片、视频、脚本、引用链接等),我们要找到它们,就需要寻址,这个寻址是由URL:统一资源定位器决定的。我们在查找网页时,输入网页地址,前面一部分是主机名,后面一部分是路径名。路径名的种类是丰富的,除了我们能想到的.jpg等实际的对象后缀,如果我们注意观察网页地址的话,会发现在用户进行操作的时候,网页后会跟着各种各样的路径名。


        http,也就是超文本传输协议,它是Web应用所遵循的协议。

        我们常用的一种结构是C/S结构,也就是用户与服务器之间的请求与响应。

        对象的传输主要是通过TCP协议进行的,一般端口为80,首先浏览器发送创建连接请求,并创建socket(两个程序通过双向的通信连接实现数据交换时,一端成为socket),另一端服务器接收到TCP连接,告诉浏览器它收到了,这是浏览器就将http请求发出,包括URL,http服务器接收到请求后,解析响应消息,把请求所需对象传送给浏览器,浏览器开始解析收到的html,如果有必要的话,可能再次发送请求。最后,TCP连接关闭。

        这种传输是无状态的传输,也就是说,服务器不会维护过去的任何请求。


        TCP连接又可分为持久性连接和非持久性连接,前者允许多个对象传输(http1.1),后者只允许一个对象传输(http1.0)。

        这两种连接的差异主要体现在服务器与浏览器交换数据中,如果一次只能传输一个对象,那么两者之间就要频繁的往来,效率将大大降低。(RTT增加,且每次连接都需要开销资源)

        我们将从客户端发送小数据包到服务器并返回的时间称作一个RTT(round trip time),在以上连接过程中,总的时间为2个RTT和文件传输时间,其中,第一个RTT是建立TCP的时间,第二个RTT是发送HTTP响应消息的时间。

        持久性连接又分为无流水和流水两种,前者在收到前一个响应后发送请求,后者在遇到一个引用对象后就发送请求。

        http消息包括了响应消息和请求消息。其中请求消息是我们可以直接看懂的,一般来说,它有如下格式:

       [计网学习笔记(2)] Web应用_第1张图片

        header filed 中,可以包括主机地址、代理商、连接状态、支持语言等。    

        其中,请求方法主要有这些:

        1.POST : 网页中填写表格(如注册登录信息),在消息体上传输入  2.URL方法:GET,输入信息通过URL上传

        http目前有两个版本,一个是1.0,它支持GET,POST,HEAD,另一个是1.1,除了GET,POST和HEAD,它还支持PUT(上传文件到指定路径)以及DELETE(删除URL指定文件)。(HEAD多用于测试,它不会将请求对象放到响应消息中)


        另外一种是响应消息。

        它的格式包括了状态栏和头部栏,以及数据。

        状态栏包括了当前使用的版本:http1.0还是http1.1,以及当前状态,状态包括以下几种:

        200 OK

        301 Move Permanently

        400 Bad Request

        404 Not Found

        505 HTTP Version not supported

        ……

        第一种是成功状态,其它几种是各种错误。

        头部栏包括了连接状态、生成响应消息时间、服务器、最后修改时间、内容长度、内容类型等等。


        我们知道HTTP是无状态的,但是很多时候我们希望保存状态,比如我们记住密码后,希望下次可以不用重复输入密码,这就用到了Cookie技术。

        Cookie技术是通过session跟踪,把数据存储在用户本地终端,这个数据是经过加密的。

        它的组件包括了响应消息,请求消息的头部栏,以及cookie文件。

        用户第一次访问网页时,在请求消息中,检测到不存在cookie,便新建一个cookie(set-cookie:唯一编号),entrybody存储在服务器数据库,再次连接时,请求消息自动包含了cookie id,这时就能读取到用户本地终端的数据。

       但是,通过对技术的了解,我们很容易看出cookie是有一定安全隐患的。


你可能感兴趣的:([计网学习笔记(2)] Web应用)