HTTP协议的特点及它是如何建立连接的

HTTP协议的特点及它是如何建立连接的,第1张

HTTP协议的特点及它是如何建立连接的 HTTP协议的特点
  1. 支持客户/服务器模式
  2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
  3. 灵活:HTTP允许传输任意类型的数据对象,且是明文传输。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。
  4. 无连接:HTTP每次请求一次,释放一次连接。所以无连接表示每次连接只能处理一个请求。优点就是节省传输时间,实现简单,但效率不高。我们有时也称这种无连接为短连接。对应的就有了长连接,长连接专门解决效率问题。当建立好了一个连接之后,可以多次请求。但是缺点就是容易造成占用资源不释放的问题。当HTTP协议头部中字段Connection:keep-alive表示支持长连接。
  5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大,这便是他的缺点。另一方面,在服务器不需要先前信息时它的应答就较快,解放了服务器,这也算是他的优点。为了解决HTTP协议无状态,于是就有了两种用于保持HTTP连接状态的技术,一个是cookie,而另一个则是Session。

cookie 客户端保持状态
cookie是通过客户端保持状态的解决方案。从定义上来说,cookie就是由服务器发给客户端的特殊信息,而这些信息以文本文件的方式存放在客户端,然后客户端每次向服务器发送请求的时候都会带上这些特殊的信息。

让我们说得更具体一些:当用户使用浏览器访问一个支持cookie的网站的时候,用户会提供包括用户名在内的个人信息并且提交至服务器;接着,服务器在向客户端回传相应的超文本的同时也会发回这些个人信息,当然这些信息并不是存放在HTTP响应体(Response Body)中的,而是存放于HTTP响应头(Response Header);当客户端浏览器接收到来自服务器的响应之后,浏览器会将这些信息存放在一个统一的位置,对于Windows *** 作系统而言,我们可以从: [系统盘]:documents and Settings[用户名]cookies目录中找到存储的cookie;自此,客户端再向服务器发送请求的时候,都会把相应的cookie再次发回至服务器。而这次,**cookie信息则存放在HTTP请求头(**Request Header)了。

有了cookie这样的技术实现,服务器在接收到来自客户端浏览器的请求之后,就能够通过分析存放于请求头的cookie得到客户端特有的信息,从而动态生成与该客户端相对应的内容。通常,我们可以从很多网站的登录界面中看到“请记住我”这样的选项,如果你勾选了它之后再登录,那么在下一次访问该网站的时候就不需要进行重复而繁琐的登录动作了,而这个功能就是通过cookie实现的。

Session 服务器来保持状态
与cookie相对的一个解决方案是Session,它是通过服务器来保持状态的。
首先,我们通常都会把Session翻译成会话,因此我们可以把客户端浏览器与服务器之间一系列交互的动作称为一个 Session。其次,Session指的是服务器端为客户端所开辟的存储空间,在其中保存的信息就是用于保持状态。

要使用Session,第一步便是在服务器端程序运行的过程中创建Session了,在Session被创建之后,就可以调用Session相关的方法往Session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有Session id;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session,从而再次使用之。正是这样一个过程,用户的状态也就得以保持了。

进行比较的话,Session相对于cookie更安全,因为Session是存放在服务器的,而cookie是存放在客户的浏览器上的,但若考虑减轻服务器负担额的话,cookie 更好一点。

cookie和Session结合使用
session 的运行依赖 session id,而 session id 是存在 cookie 中的,也就是说,如果浏览器禁用了 cookie ,同时 session 也会失效(但是可以通过其它方式实现,比如在 url 中传递 session_id)维持一个会话的核心就是客户端的唯一标识,即 session id。

举例说明:sessionID的本质、保存在哪里?

HTTP连接是如何建立的?

HTTP和HTTPS都需要在建立连接的基础上来进行数据传输,这是基本 *** 作

HTTP建立连接过程:(在浏览器中输入url地址 ->> 显示主页的过程)
当客户在浏览器中输入网址后,浏览器会在浏览器DNS缓存,本地DNS缓存,和Hosts中寻找对应的记录,如果没有获取到则会请求DNS服务来获取对应的ip,当获取到ip后,tcp连接会进行三次握手建立连接

  • 建立连接完毕以后客户端会发送HTTP请求给服务端
  • 服务端接受请求并且做出响应返回HTTP报文给客户端
  • 客户端收到响应并且解析响应、渲染页面给用户

最后通过TCP四次挥手断开连接,连接结束。

详细参考请见:HTTP和HTTPS连接是如何建立的?

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/3988910.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-21
下一篇 2022-10-21

发表评论

登录后才能评论

评论列表(0条)

保存