首页 > 其他分享 >HTTP协议的特点

HTTP协议的特点

时间:2023-10-05 22:14:28浏览次数:34  
标签:协议 HTTP 请求 特点 Session 服务器 连接 客户端

1. 支持客户/服务器模式。
2. 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、POST等。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。
3. 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。
4. 无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。
5. 无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

无连接,是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

早期这么做的原因是 HTTP 协议产生于互联网,因此服务器需要处理同时面向全世界数十万、上百万客户端的网页访问,但每个客户端(即浏览器)与服务器之间交换数据的间歇性较大(即传输具有突发性、瞬时性),并且网页浏览的联想性、发散性导致两次传送的数据关联性很低,大部分通道实际上会很空闲、无端占用资源。因此 HTTP 的设计者有意利用这种特点将协议设计为请求时建连接、请求完释放连接,以尽快将资源释放出来服务其他客户端。
随着时间的推移,网页变得越来越复杂,里面可能嵌入了很多图片,这时候每次访问图片都需要建立一次 TCP 连接就显得很低效。后来,Keep-Alive 被提出用来解决这效率低的问题。
Keep-Alive 功能使客户端到服务器端的连接持续有效,当出现对服务器的后继请求时,Keep-Alive 功能避免了建立或者重新建立连接。在早期的HTTP/1.0中,每次http请求都要创建一个连接,而创建连接的过程需要消耗资源和时间,为了减少资源消耗,缩短响应时间,就需要重用连接。在后来的HTTP/1.0中以及HTTP/1.1中,引入了重用连接的机制,就是在http请求头中加入Connection: keep-alive来告诉对方这个请求响应完成后不要关闭,下一次咱们还用这个请求继续交流。协议规定HTTP/1.0如果想要保持长连接,需要在请求头中加上Connection: keep-alive,而HTTP/1.1默认是支持长连接的,有没有这个请求头都行。
这样一来,客户端和服务器之间的 HTTP 连接就会被保持,不会断开(超过 Keep-Alive 规定的时间,意外断电等情况除外),当客户端发送另外一个请求时,就使用这条已经建立的连接。

无状态是指协议对于事务处理没有记忆能力,服务器不知道客户端是什么状态。即我们给服务器发送 HTTP 请求之后,服务器根据请求,会给我们发送数据过来,但是,发送完,不会记录任何信息。

HTTP 是一个无状态协议,这意味着每个请求都是独立的,Keep-Alive 没能改变这个结果。
缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP 协议这种特性有优点也有缺点,优点在于解放了服务器,每一次请求“点到为止”不会造成不必要连接占用,缺点在于每次请求会传输大量重复的内容信息。
客户端与服务器进行动态交互的 Web 应用程序出现之后,HTTP 无状态的特性严重阻碍了这些应用程序的实现,毕竟交互是需要承前启后的,简单的购物车程序也要知道用户到底在之前选择了什么商品。于是,两种用于保持 HTTP 连接状态的技术就应运而生了,一个是 Cookie,而另一个则是 Session。
Cookie可以保持登录信息到用户下次与服务器的会话,换句话说,下次访问同一网站时,用户会发现不必输入用户名和密码就已经登录了(当然,不排除用户手工删除Cookie)。而还有一些Cookie在用户退出会话的时候就被删除了,这样可以有效保护个人隐私。
Cookies 最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是 Cookies 的功用。另一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入 Cookies,以便在最后付款时提取信息。
与 Cookie 相对的一个解决方案是 Session,它是通过服务器来保持状态的。
当客户端访问服务器时,服务器根据需求设置 Session,将会话信息保存在服务器上,同时将标示 Session 的 SessionId 传递给客户端浏览器,浏览器将这个 SessionId 保存在内存中,我们称之为无过期时间的 Cookie。浏览器关闭后,这个 Cookie 就会被清掉,它不会存在于用户的 Cookie 临时文件。
以后浏览器每次请求都会额外加上这个参数值,服务器会根据这个 SessionId,就能取得客户端的数据信息。
如果客户端浏览器意外关闭,服务器保存的 Session 数据不是立即释放,此时数据还会存在,只要我们知道那个 SessionId,就可以继续通过请求获得此 Session 的信息,因为此时后台的 Session 还存在,当然我们可以设置一个 Session 超时时间,一旦超过规定时间没有客户端请求时,服务器就会清除对应 SessionId 的 Session 信息。

标签:协议,HTTP,请求,特点,Session,服务器,连接,客户端
From: https://www.cnblogs.com/wyl010926/p/17743997.html

相关文章

  • Dubbo3应用开发—协议(Dubbo协议、REST协议 、gRPC协议、Triple协议)
    协议协议简介什么是协议Client(Consumer端)与Server(Provider端)在传输数据时双方的约定。Dubbo3中常见的协议1.dubbo协议[前面文章中使用的都是dubbo协议]2.rest协议3.triple协议4.grpc协议5.thirft协议6.webservice协议7.rocketmq协议8.redis协议9.memacached协议.......
  • http常见状态码
    一、1开头的状态码(信息类)   100,接受的请求正在处理,信息类状态码二、2开头的状态码(成功类)   2xx(成功)表示成功处理了请求的状态码   200(成功)服务器已成功处理了请求。三、3开头的状态码(重定向)   3xx(重定向)表示要完成请求,需要进一步操作。通常这些......
  • 网络协议适用场景区别
    网络协议,简单说,就是计算机之间“聊天”的方式。1.HTTP想象你正在网上浏览一篇文章,那么你的浏览器就在用HTTP这种“聊天”方式获取文章内容。它像一个桥梁,连接你和网络上的数据。2.HTTP/3这是HTTP的升级版。为了应对越来越多的移动设备,它使用了一个名为QUIC的新技术。有了......
  • 使用ensp搭建路由拓扑,并使用isis协议实现网络互通实操
    转载请注明出处:1.通过拓扑搭建如下拓扑:               其中R7、R8为L1,R6为L1/2,R9为L2。2.配置isis实现网络互通R7配置如下:[Huawei]isis1[Huawei-isis-1]dith#isis1is-levellevel-1network-entity10.0000.0000.0001.00#r......
  • ISIS 协议常用基本配置总结
    转载请注明出处:1.创建IS-IS进程,进入IS-IS进程[Huawei]isis[process-id]参数process-id用来指定一个IS-IS进程。如果不指定参数process-id,则系统默认的进程为1。2.配置网络实体名称(NET)[Huawei-isis-1]network-entitynet通常情况下,一个IS-IS进程下配置一个N......
  • 国标GB28181协议下视频监控平台EasyGBS播放器起播慢或延迟高问题解决方案
    GB28181视频监控国标平台EasyGBS是基于国标GB28181协议、支持多路设备同时接入的视频监控/视频云服务平台,支持对多平台、多终端分发RTSP、RTMP、FLV、HLS、WebRTC等格式的视频流。国标GB28181平台EasyGBS可提供视频直播监控、云端录像、云存储、检索回放、智能告警、语音对讲、平......
  • fetch函数发送HTTP请求
    Fetch函数是一个现代的JavaScriptAPI,用于发送HTTP请求并处理响应。它提供了一种简单和灵活的方式来进行网络通信。以下是发送HTTP请求的基本用法:fetch(url,options).then(response=>{//处理响应if(!response.ok){thrownewError('网络请求失败');......
  • socket,tcp,http三者之间的区别和原理
    socket,tcp,http三者之间的区别和原理http、TCP/IP协议与socket之间的区别下面的图表试图显示不同的TCP/IP和其他的协议在最初OSI模型中的位置:7   应用层   例如HTTP、SMTP、SNMP、FTP、Telnet、SIP、SSH、NFS、RTSP、XMPP、Whois、ENRP6   表示层   例如XDR、ASN.1......
  • 图解各种流行的网络协议 All In One
    图解各种流行的网络协议AllInOneNetworkprotocolsarestandardmethodsoftransferringdatabetweentwocomputersinanetwork.HTTP(HyperTextTransferProtocol)HTTPisaprotocolforfetchingresourcessuchasHTMLdocuments.Itisthefoundationofa......
  • http
    入门题1.get传参UwU=u  2.POST传参Luv=u 3. admincharacter抓包修改    4.本地用户 X-Forwarded-For:127.0.0.1 5.修改访问浏览器 五个任务同时完成后出flag ......