http方面

1.http2.0的优缺点:

    采用二进制格式传输数据

    对消息头采用hpack进行压缩传输,能节省消息头占用的网络流量

    异步连接采用多路复用

    server push,服务端能够更快的把资源传给客户端

2.http报文的请求和返回会有几部分

    请求报文 :请求头、请求行、空行、请求数据

    HTTP响应: 状态行、消息报行、响应正文


1xx:指示信息--表示请求已接收,继续处理。

2xx:成功--表示请求已被成功接收、理解、接受。

3xx:重定向--要完成请求必须进行更进一步的操作。

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

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

常见状态码:

200 OK:客户端请求成功。

400 Bad Request:客户端请求有语法错误,不能被服务器所理解。

401 Unauthorized:请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用。

403 Forbidden:服务器收到请求,但是拒绝提供服务。

404 Not Found:请求资源不存在,举个例子:输入了错误的URL。

500 Internal Server Error:服务器发生不可预期的错误。

503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常,举个例子:HTTP/1.1 200 OK(CRLF)。

Get和POST的区别

    Get明文传输,会保存在浏览器历史记录,可以被缓存,2048

    Post是通过请求header请求


1. IE浏览器对URL的长度现限制为2048字节(自己测试最多为2047字节)。

2. 360极速浏览器对URL的长度限制为2118字节。

3. Firefox(Browser)对URL的长度限制为65536字节。

4. Safari(Browser)对URL的长度限制为80000字节。

5. Opera(Browser)对URL的长度限制为190000字节。

6. Google(chrome)对URL的长度限制为8182字节

3.输入url到页面加载全过程

     1。url: 协议名、域名、端口号

    2. 缓存: 

                强制缓存:优先使用cache-control: max-age=缓存的秒数

                                  Expires: 是服务器时间,浏览器检查当前时间,如果没有失效就直接使用缓存文件

                比较缓存:

                                last-modified是上一次请求资源时,服务器返回的字段,表示最后一次更新时间。下一次浏览器请求资源时会发if-modified-since字段,服务器用本地的last-modified和if-modified-since时间比较,如果一致,发送304状态码

                                Etag: 资源的实体标识(哈希字符串)服务器判断是否发生变化,如果发生变化 304


    3.DNS域名解析

        1.浏览器检查本地hosts文件是否有这个网站的映射关系

        2.查找本地DNS解析器缓存

        3. 查找本地DNS服务器

    4. TCP连接

      第一握手: 建立连接。发送syn包到服务器,并进入SYN_SENT状态,等待服务器确认;

    第二次握手: 服务器收到syn包

   5.浏览器向服务器发送HTTP请求

6.浏览器接收响应

7.页面渲染

        解析HTML,构建DOM树

        解析CSS,生成CSS树

        合并DOM树和CSS规则树,生成render树

        布局render树(reflow)

        绘制render树

8.关闭TCP连接或者保持连接

        四次挥手:


Http和https的主要区别

    https需要证书,需要费用

    http是超文本传输协议,信息是明文的,https的具有安全性的ssl加密传输协议

    使用不同的连接方式 http:80  https:443

    http的连接很简单,是无状态的,https协议是ssl+http协议构建可进行加密传输、身份认证的网络协议,比http安全


跨域:

    浏览器同源策略: 协议、域名、端口

    1.document.domain解决无法读取非同源网页的Cookie问题

            (此方案仅限主域相同,子域不同的跨域应用场景。)

 2.window.postMessage

    页面和其打开的新窗口的数据传递

    多窗口之间消息传递

    页面与嵌套的iframe消息传递

    上面三个场景的跨域数据传递

3.JSONP

只支持GET

    核心思想: 网页通过添加一个

// 向服务器test.com发出请求,该请求的查询字符串有一个callback参数,用来指定回调函数的名字

// 处理服务器返回回调函数的数据

4.cors

    普通跨域请求:只需服务器端设置Access-Control-Allow-Origin

    带cookie跨域请求:前后端都需要进行设置

【前端设置】根据xhr.withCredentials字段判断是否带有cookie

5.cors返回头

6.性能优化:

    1.减小请求资源大小或次数

    2.尽量合并并压缩css和js文件

    3.尽量试用字体图标或svg

    4.图片懒加载

    5.雪碧图、精灵图

    6.减少对cookie的使用

    7.避免使用iframe

8.减少使用闭包  闭包所在的上下文不释放

9.减少对DOM的操作,减少重绘和回流(重排)

10.减少css表达式使用

你可能感兴趣的:(http方面)