a stateless application-level request/response protocol that uses extensible semantics and self-descriptive message payloads for flexible interaction with network-based hypertext information system.
一种无状态的、应用层的、以请求 / 应答方式运行的协议,它使用可扩展的语义和自描述消息格式,与基于网络的超文本信息系统灵活地互动。
参考链接:https://tools.ietf.org/html/rfc7230
https://gitee.com/geektime-geekbang/geektime-webprotocol
作者回复: 例如,最初一个HTTP包体只能是一种资源类型,在HTTP头部中有Content-Type表示。后来表单提交时,既有按钮、文本、下拉框也有文件、图片这样的二进制文件,于是把Content-type扩展为:multipart/form-data; boundary=----,而HTTP包体则可以由多个资源以boundary拼接而成。这就是一种可扩展的语义。
作者回复: 操作系统只实现TCP层,浏览器只能使用系统调用建立TCP连接,而构造HTTP请求是浏览器的事,何时发起请求也是浏览器的事
作者回复: 目前课程规划中是没有的。如果课程录制时间没有大量超出(Nginx课程就严重超时了),且大家都比较想了解QUIC协议,可以考虑在第5部分课程里插入介绍下
作者回复: 1、静态资源是指不同用户、一段时间内访问同一个URL,结果完全相同;动态资源指不同用户、不同时间的URL返回内容不同。 2、web是个概念,它最初描述人如何浏览互联网,它包含http。http只是一个应用层协议,而web包括很多协议以及其他规范,也包括服务器。
作者回复: 1、对,http/1.1协议一定是request/response模式,同一个连接(session也可以)下一定是第一个响应收到后,才能发第二个请求。 2、如果协议支持多路复用,那么需要在每个请求和响应上有一个id字段,以使得客户端或者服务器能够对得上某请求的响应,你可以关注第2部分以后的课程,都有这个特性。
作者回复: 不一定,如果是keepalive长连接(详见第15课)会复用TCP连接。另外,即使服务器明确可以使用长连接,浏览器也有可能新开一个TCP连接以增加传输效率,不同的浏览器及版本都不一样,目前版本的Chrome大概会最多开6个连接,故点击超链接是否握手也与浏览器策略有关
作者回复: tcp fastopen下可以的。第5部分课程会介绍到
作者回复: 1、表面上看是穿插进行的,但实际是有先后顺序的: 某一个请求,一定是由于“上游”请求引发的。即“上游”请求的响应接收到,并且被解析后,才发起该请求。请参见第9课在Network面板中验证。 某一个请求来源是哪,例如javascript文件还是HTML超链接亦或是浏览器地址栏,都可以在Network面板中看到。 2、这里其实是指,把渲染结果展示给用户看。
作者回复: 希望能帮到你:-)
作者回复: ^_^