前端常见面试题-网络

1. 同步与异步区别

同步:每一个任务都有有序执行,下一个要等上一个执行完才能执行,是阻塞型的。
异步:程序的执行顺序与任务的排列顺序是不一致的,根据谁先回调谁先执行。是非阻塞的。

2. 如何解决跨域

常用 4 种

跨域资源共享(CORS)
nginx代理跨域
nodejs中间件代理跨域
浏览器屏蔽安全校验

不常用 6 种

通过jsonp跨域
postMessage跨域
WebSocket协议跨域
document.domain + iframe跨域
location.hash + iframe
window.name + iframe跨域

3. http状态

1xx Informational(信息性状态码) 接受的请求正在处理
2xx Success(成功状态码) 请求正常处理完毕
3xx Redirection(重定向) 需要进行附加操作以完成请求
4xx Client error(客户端错误) 客户端请求出错,服务器无法处理请求
5xx Server Error(服务器错误) 服务器处理请求出错

200("OK")
一切正常。实体主体中的文档(若存在的话)是某资源的表示。
400("Bad Request")
客户端方面的问题。实体主题中的文档(若存在的话)是一个错误消息。希望客户端能够理解此错误消息,并改正问题。
500("Internal Server Error")
服务期方面的问题。实体主体中的文档(如果存在的话)是一个错误消息。该错误消息通常无济于事,因为客户端无法修复服务器方面的问题。
301("Moved Permanently")
当客户端触发的动作引起了资源URI的变化时发送此响应代码。另外,当客户端向一个资源的旧URI发送请求时,也发送此响应代码。
404("Not Found") 和410("Gone")
当客户端所请求的URI不对应于任何资源时,发送此响应代码。404用于服务器端不知道客户端要请求哪个资源的情况;
410用于服务器端知道客户端所请求的资源曾经存在,但现在已经不存在了的情况。
409("Conflict")
当客户端试图执行一个”会导致一个或多个资源处于不一致状态“的操作时,发送此响应代码。

4. 一个页面从输入url到页面显示,这个过程发生了什么?

从大的方面分为4部分

  1. url解析
  2. dns查询
  3. 资源请求
  4. 浏览器解析渲染
    具体流程:
  • 首先浏览器会新开一个线程处理这个请求,根据url如果符合http协议就安装web方式处理,
  • 调用内核webview中的loadurl方法
  • url解析如果有缓存直接取缓存,
  • 没有请求dns解析,拿到ip地址,
  • 开始进行http协议会话,
  • 与服务器建立连接3次握手,成功后开始http 请求响应信息,
  • 服务器收到请求,进入服务器开始找到对应请求并返回。
  • 返回对应html css js 给客户端。
  • 客户端根据返回的内容
  • 开始解析html源码,生成dom树。
  • 根据css解析生成css规则树。
  • 把两者合并合成渲染树,根据渲染树计算每一个节点的信息进行布局和绘制页面

5. 为什么https安全?

由于网络请求中间会经过很多中间的服务器或路由转发,可能被篡改。https利用的是 ssl或者tls的协议传输,通过非对称加密,由于私钥只有在最终服务器才有,才能解开你的公钥信息。并且证书需要CA机构认证。所以保障了网络传输的安全

6. get 和 post 的区别,什么时候使用post

get url长度有限制,最多2000个字符,适合简单的内容请求,图片,js,css 通过?后面参数传值
post 一般用户修改服务器资源,发送大量数据,特殊字符。通过form传值

7. http和https区别

https需要CA机构认证证书,需要收费
http是明文,https是加密的,是由http+tls/ssl 的进行加密传输
http是80 https 443

你可能感兴趣的:(前端常见面试题-网络)