Skip to content

Latest commit

 

History

History
125 lines (65 loc) · 4 KB

1.3 网络基础-http.md

File metadata and controls

125 lines (65 loc) · 4 KB

1.3 网络基础

一篇文章带你熟悉 TCP/IP 协议-(一)

网络知识面面观

一文讲透前端开发所需网络知识

浏览器进程/线程模型及JS运行机制

网络

并发

并发请求数2-8,优化点:domain hash, cookie free, CSS sprites, JS/CSS combine, max expires time, loading images on demand

OSI七层框架

参考

物理层、 数据链路层、 网络层(IP)、 传输层(TCP)、 会话层(SSH/TLS等)、 表示层(信息格式化、端到端加密、上下文控制)、 应用层(HTTP)

URL

protocol://host:port/path?query#fragment

DNS IP

DNS解析,优化点:DNS预解析

浏览器->本机->host->路由服务器->dns服务器

百度App网络深度优化:DNS 和连接优化

TCP / HTTP

Http协议与TCP协议简单理解

HTTP

第一次握手

请求协议,如果是HTTPS,则返回公钥证书。

HTTPS加密套路

TCP

面试官,不要再问我三次握手和四次挥手

tcp/ip请求:3次握手

请求协议->确认协议->返回确认,之后传输数据

tcp/ip关闭:4次握手

请求关闭->确认关闭返回请求关闭->确认关闭->双方关闭

http get和post

get请求时,浏览器会把 headers和 data一起发送出去,服务器响应200(返回数据);

post请求时,浏览器先发送 headers,服务器响应 100continue,浏览器再发送 data,服务器响应200(返回数据)。

99%的人都理解错了HTTP中GET与POST的区别

http报文结构

报文一般包括了:通用头部,请求/响应头部,请求/响应体。

通用头部

这也是开发人员见过的最多的信息,包括如下:

Request Url: 请求的web服务器地址

Request Method: 请求方式(Get、POST、OPTIONS、PUT、HEAD、DELETE、CONNECT、TRACE)

前端 | 浅谈preflight request - options

Status Code: 请求的返回状态码,如200代表成功

Remote Address: 请求的远程服务器地址(会转为IP)

204状态:表示请求完成,不处理响应,甚至不跳转。

206状态:部分内容和范围请求,客户发送了一个带有Range头的GET请求,服务器完成了它。

状态码

请求/响应头部

刨根问底 HTTP

简单聊聊 GZIP 的压缩原理与日常应用

X-Frame-Options

Transfer-Encoding

请求/响应实体

http请求时,除了头部,还有消息实体,一般来说,请求实体中会将一些需要的参数都放入进入(用于post请求)。譬如实体中可以放参数的序列化形式( a=1&b=2这种),或者直接放表单对象( FormData对象,上传时可以夹杂参数以及文件),等等。

而一般响应实体中,就是放服务端需要传给客户端的内容。一般现在的接口请求时,实体中就是对于的信息的json格式,而像页面请求这种,里面就是直接放了一个html字符串,然后浏览器自己解析并渲染。

cookie以及优化

cookie中设置 httponly(这样就无法通过js操作了)。

优化每次必带的问题。

同域加载

同源线程限制,多源加速

同域通信 storage

跨域通信的几种方式

  1. JSONP
  2. Hash
  3. postMessage
  4. WebSocket
  5. CORS