美文网首页
HTTP协议-HTTP\1扩展一

HTTP协议-HTTP\1扩展一

作者: Wu杰语 | 来源:发表于2019-09-20 19:10 被阅读0次

序言

HTTP \1协议是一个可扩展的协议,而在真是的网络世界中,HTTP做了哪些扩展从而达到商用的级别呢?

HTTP扩展

HTTP传输的内容

HTTP传输的内容,使用了MIME 规范的一部分,用来标记 body 的数据类型。常用的有:

  • text:即文本格式的可读数据,我们最熟悉的应该就是 text/html 了,表示超文本文档,此外还有纯文本 text/plain、样式表 text/css 等。
  • image:即图像文件,有 image/gif、image/jpeg、image/png 等。
  • audio/video:音频和视频数据,例如 audio/mpeg、video/mp4 等。
  • application:数据格式不固定,可能是文本也可能是二进制,必须由上层应用程序来解释。常见的有 application/json,application/javascript、application/pdf 、 application/octet-stream。

对于浏览器,如果收到HTTP报文,对于不同的类型是做不同的处理的。例如说text/html,就进一步的解析走渲染流程;如果是application,就会进行下载或者执行。

传输过程,特别是对文本,为了传输更有效率,可以选择进行压缩,Encoding type 就少了很多,常用的只有下面三种:

  • gzip:GNU zip 压缩格式,也是互联网上最流行的压缩格式;
  • deflate:zlib(deflate)压缩格式,流行程度仅次于 gzip;
  • br:一种专门为 HTTP 优化的新压缩算法(Brotli)。

对于字符来说,传输有编码,需要定义传输的语言和字符集。
在实际中,以访问简书为例,从chome network面板中查看:

:authority:www.jianshu.com
:method:GET
:path:/p/65f83aa86db8
:scheme:https
accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
accept-encoding:gzip, deflate, sdch, br
accept-language:zh-CN,zh;q=0.8

如上,格式之间用,隔开,其中;用来表示对该项的修饰,例如 zh;q=0.8,表示zh的比重是0.8。在header中accept中有多项,表示客户端可能支持这些类型,发送给服务器做协商。
服务器协商后得到通讯使用的实际类型,如下:

content-encoding:gzip
content-type:text/html; charset=utf-8
HTTP长连接

http的默认是个短连接,连接过程有:

  • 三次握手建立TCP连接
  • 传送HTTP报文
  • 四次回收断开TCP连接

当传送的HTTP报文比较短的时候,基本都消耗在TCP的建链和断开链接了。

因此HTTP扩展出了长连接,在报文头中增加:

Connection: keep-alive

此时,就是保持一个长连接。

虽然长连接有这个好处,但是也带来了问题,如果有些长连接不活跃,以及长连接过多,会带来资源消耗。因此一般服务器都需要设计一定的策略,例如说Ngix,设计了超时时间或者请求最大次数,超过时间或者最大次数就将连接断开。

小结

今天这个小文章总结了HTTP下最基本的两个扩展,承载内容以及长连接。HTTP本身就是个协议,而不是实体,所以需要到实现它的浏览器或者web服务器中,去看到它的实现。学习浏览器和web服务器知识也是相当重要的。

相关文章

  • HTTP协议-HTTP\1扩展一

    序言 HTTP \1协议是一个可扩展的协议,而在真是的网络世界中,HTTP做了哪些扩展从而达到商用的级别呢? HT...

  • HTTP协议-HTTP\1扩展二

    序言 HTTP \1协议是一个可扩展的协议,而在真是的网络世界中,HTTP做了哪些扩展从而达到商用的级别呢?本文是...

  • HTTP协议-HTTP\1扩展三

    序言 这是HTTP\1扩展的小短文的最后一篇了,HTTP的缓存控制和代理,实际上HTTP的扩展还有很多,这里介绍的...

  • 网络

    1 HTTP协议1.1请求报文1.2 响应报文1.3 http的请求方式有哪些1.4 HTTP扩展方法1.5 GE...

  • HTTP(二)

    HTTP 特点 1 HTTP 是灵活可扩展的,可以任意添加头字段实现任意功能; 2. HTTP 是可靠传输协议,基...

  • HTTP协议-HTTP\1定义

    序言 今天这篇小文,我们从HTTP协议本身和浏览器发送一个HTTP请求两个角度来学习一下HTTP\1协议。 HTT...

  • 第六个模块 HTTP协议、Restful

    HTTP协议 · HTTP协议 · 工作原理 HTTP协议请求 HTTP协议响应 HTTP协议消息报头 1、普通报...

  • HTTP协议(一):HTTP

    HTTP 协议,即超文本传输协议( Hypertext transfer protocol )。是一种详细规定了浏...

  • 1、HTTP协议

    (原话)谈谈对HTTP协议的理解:超文本传输协议,应用于OSI网络模型中的应用层,是用于服务器传输超文本到本地浏览...

  • HTTP协议(1)

    概述 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维...

网友评论

      本文标题:HTTP协议-HTTP\1扩展一

      本文链接:https://www.haomeiwen.com/subject/wpnsyctx.html