高级之路篇十一:前端看http协议以及http协议上能做的事情

http协议其实就是超文本传输协议。

http协议是建立在tcp/ip协议之上的应用层协议,主要包括三个部分,状态行头部信息消息主体。对应一个http请求就是:请求行请求头请求体

通信流程

用户输入url地址,发送一个request  ----- >

从离自己最近的ip地址开始向外寻找(这就是外国网站比较满的原因之一),找到服务器 ------>

服务器处理完成后request返回响应的response给浏览器 ----->

浏览器处理。

 

关于request

url:请求地址

method:请求的方式

header:请求头,key:value形式

请求体:请求数据

 

关于response

状态行:详见:https://www.runoob.com/http/http-status-codes.html

       1XX  提示信息 - 表示请求已被成功接收,继续处理

  2XX  成功 - 表示请求已被成功接收,理解,接受

  3XX  重定向 - 要完成请求必须进行更进一步的处理

  4XX  客户端错误 -  请求有语法错误或请求无法实现

  5XX  服务器端错误 -   服务器未能实现合法的请求

header:响应头,key:value形式

响应体:响应数据

 

header中我们关注的:

content-type:

      --- application/x-www-form-urlencoded, 在最开始的请求方式中,请求参数都是放在url中,表单提交的时候,都是以key=&value=的方式写在url后面。这也是浏览器表单提交的默认方式。

      --- multipart/form-data,此种方式多用于文件上传,表单数据都保存在http的正文部分,各个表单项之间用boundary分开。

      --- application/json,现在越来越多的应用使用application/json,用来告诉服务端消息主体是序列化的json字符串。由于json规范的流行,各大浏览器都开始原生支持JSON.stringfy。

content-encoding:如gzip,响应的编码格式

Cache-Control:浏览器缓存机制,一般会有max-age=值,或者no-cache或者public、private;

      --- no-cache  ---- 不要读取缓存中的文件,要求向WEB服务器重新请求

      --- public    ---- 数据内容皆被储存起来,就连有密码保护的网页也储存,安全性很低
      --- private    ---- 数据内容只能被储存到私有的cache,仅对某个用户有效,不能共享

      --- no-store    ---- 请求和响应都禁止被缓存

      --- max-age: ---- 表示当访问此网页后的max-age秒内再次访问不会去服务器请求;

      --- max-stale  ---- 允许读取过期时间必须小于max-stale 值的缓存对象。

      --- min-fresh ---- 接受其max-age生命期大于其当前时间 跟 min-fresh 值之和的缓存对象

      --- only-if-cached ---- 告知缓存者,我希望内容来自缓存,我并不关心被缓存响应,是否是新鲜的.

      --- no-transform   ---- 告知代理,不要更改媒体类型,比如jpg,被你改成png.

Last-Modified:作用: 用于指示资源的最后修改日期和时间。一般都用来处理缓存;

 

持久链接:Keep-live

       http协议采用’请求-应答’模式,当使用普通模式,即非Keep-live模式,每个请求/应答客户端都要建立一个新的连接,完成之后立即断开,俗称短连接。
       当使用keep-live模式,使客户端和服务端的连接持续有效,当出现对服务器的后继请求时,keep-live功能避免的了建立或者重新建立新的连接,俗称长连接。

 

管线化

        正常:在使用持久连接的情况下,某个连接上消息的传递类似与 请求1->响应1->请求2->响应2…..
        管线化:请求打包一起发送 请求1->请求2->请求3->响应1->响应2->响应3 

                只有get和head请求可以管线化,post有所限制
                初次创建连接不应启动管线机制,因为对方服务器不一定支持http/1.1版本协议
                管线化不会影响响应到来的顺序

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值