传说中的HTTP协议

Posted 新梦想软件测试

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了传说中的HTTP协议相关的知识,希望对你有一定的参考价值。

各位亲,好久不见,长肉肉了没有,学习了没有,说好的文章今天终于弄出来了!!!


上次我们说过了HTTP协议的历史,看到了HTTP协议的演进过程。我们今天重点说的是HTTP协议的1.1版本。


HTTP协议用于客户端和服务端之间的通信。HTTP协议能够非常明确的区分哪端是客户端,哪端是服务端。


那什么是客户端,什么是服务端呢?两台机器之间进行通信,请求访问文本、图片或视频等资源的是客户端。提供文本或者图片等资源的就是服务端。HTTP协议规定通信一定是从客户端开始的,客户端发出请求信息,服务端响应该请求并返回响.


HTTP协议的特点:

 特点一:简单快速

 使用HTTP协议时,客户向服务器请求服务,只需传送请求方法和路径。每种方法规定了客户与服务器联系的类型不同。因为它比较简单,所以速度就比较快啦!

传说中的HTTP协议(二)

HTTP请求的方式有很多:

传说中的HTTP协议(二)

特点二:灵活

现在主流的HTTP1.1版本可以允许传输的数据类型有很多种,数据类型由请求头中的content-type字段进行标记。这一点在上一篇文章中已经提到过了,就不再重复了

传说中的HTTP协议(二)

特点三:无连接

   

特点四:无状态

 HTTP协议自身不保留之前所有通信的请求和响向的信息,这么做的目的是为了快速的处理大量的事务。但是随着web技术和业务的发展,不保留状态是非常麻烦的事 情。比如:你打开淘宝进行购物的时候,登陆完后。当你点击进入其它付款页时, http协议并没有保留你的登陆状态,又要求你重新登陆。如此重复操作。就会让 用户使用web系统时感到脑袋痛了。为了解决这个问题,引入了Cookie技术,这样就可以管理状态了。

传说中的HTTP协议(二)

Cookie机制

 cookie??饼干??才刚过完年,不要尽想着吃。Cookie是在 HTTP 协议下,服务器或脚本可以维护客户工作站上信息的一种方式。Cookie 是由 Web 服务器保存在用户浏览器(客户端)上的小文本文件,它可以包含有关用户的信息。

 Cookie 技术通过在请求和响应报文中写入 Cookie 信息来控制客户端的状态。Cookie 会根据从服务器端发送的响应报文内的一个叫做 Set-Cookie 的首部字段信息, 通知客户端保存 Cookie


上图表示抓取的是第一次访问网站的请求头部和响应头的内容,很明显示在请求头中没有cookie信息,而在响应头中则出现了set-cookie字段。

当下次客户端再往该服务器发送请求时, 客户端会自动在请求报文中加入 Cookie 值后发送出去。服务器端发现客户端发送过来的 Cookie 后, 会去检查究竟是从哪一个客户端发来的连接请求, 然后对比服务器上的记录, 最后得到之前的状态信息。


上图中进行第二次请求时,则在请求头中出现了cookie,与第一次响应头中要求要客户端保存的字段是一致的。都是一个phpSESSID的字段值。


SESSION机制

不知道有没有人好奇这个PHPSESSID是什么东西呢 ?刚刚说过的cookie是用来保存用户状态的一种机制,但是cookie是可以在客户端被人为禁止使用的。这个时候用户信息可能没有办法被保存下来。那就只能让服务器端来保存用户状态,这就可以使用session机制了,它是一种在服务器端保存状态的机制。

当用户使用客户端发起一个请求时,服务端就会去检查这个请求中是否包含了session标识---也就是session ID。如果包含了,则说明之前客户端已经创建过请求,服务端则去文件或者数据库中把session id检索出来进行使用,如果检索不到,则需要创建一个新的session id了。如果客户端没有session id,则需要为这个请求创建一个session id

至于session 机制更深的了解,大家可以再去找相关资料进行了解哦,或者下次可以写一篇session相关的文章也行啊。

下次再见哦!!!


以上是关于传说中的HTTP协议的主要内容,如果未能解决你的问题,请参考以下文章

完整的一次 HTTP 请求响应过程

HTTP协议中的短轮询、长轮询、长连接和短连接

HTTP中的幂等性

HTTP协议

RESTful中的HTTP协议

HTTP概述前端开发中的HTTP协议