前端面试考点---http篇

149 阅读4分钟

URL解析过程:

  1. 域名解析,全球总共13台根域名服务器,维护域名与ip对应的表
  2. 发起TCP的3次握手,成功建立TCP连接后发起http请求
  3. 服务器响应http请求
  4. 浏览器解析htm代码,并请求html代码中的资源(如js、css、图片等)
  5. 断开TCP连接
  6. 浏览器对页面进行渲染呈现给用户

公钥私钥关系

  • 公钥加密,私钥解密

  • 接受别人的消息(对方要保证你能看到),别人用你的公钥加密后再发给你

  • 私钥签名,公钥验证签名

  • 发消息给别人(比人要保证是你发的),你先用自己的私钥签名,比尔用你的公钥解密验证签名

img

HTTP

  • 超文本传输协议,是一个无状态的协议,HTTP 服务器不会保存关于客户的任何信息。

工作过程:

  • 地址解析获取服务器ip地址

  • 结合本机自己的信息,封装成HTTP请求数据包

  • 封装成TCP包,建立TCP连接(TCP的三次握手)

  • 客户机发送请求命令

    建立连接后,客户机发送一个请求给服务器,请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可内容。

  • 服务器响应

    服务器接到请求后,给予相应的响应信息,其格式为一个状态行,有信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。

实体消息是服务器向浏览器发送头信息后,它会发送一个空白行来表示头信息的发送到此为结束,接着,它就以Content-Type应答头信息所描述的格式发送用户所请求的实际数据

  • 服务器关闭TCP连接

加密方式:

  • 散列函数Hash:

常见的有 MD5、SHA1、SHA256,该类函数特点是函数单向不可逆、对输入非常敏感、输出长度固定,针对数据的任何修改都会改变散列函数的结果,用于防止信息篡改并验证数据的完整性; 在信息传输过程中,散列函数不能单独实现信息防篡改,因为明文传输,中间人可以修改信息之后重新计算信息摘要,因此需要对传输的信息以及信息摘要进行加密;

  • 对称加密:通信方式是1对1; 对称加密的优势是信息传输1对1,需要共享相同的密码,服务器和 N 个客户端通信,需要维持 N 个密码记录

  • 非对称加密:公钥私钥成对出现。公钥加密的信息只能私钥解开,私钥加密的信息只能公钥解开

TLS(Transport Layer Security)/SSL

img

  • 使用:在生成HTTP包之后,先进入SSL数据算法加密然层,之后再打包成TCP包
  • 算法种类:散列函数 Hash、对称加密和非对称加密

HTTPS

  • 超文本传输安全协议,需要配置 TLS/SSL证书进行数据加密

缺点:

  • 增加延时,HTTPS协议握手阶段比较费时,对网站的相应速度有负面影响
  • 加载时间延长近50%,增加10%到20%的耗电,消耗较多的CPU资源
  • SSL证书需要钱,功能越强大的证书费用越高,个人网站、小网站没有必要一般不会用
  • HTTPS连接服务器端资源占用高很多,支持访客稍多的网站需要投入更大的成本

DNS 协议

  • 域名系统。

UDP 协议

  • 用户数据报协议, 无连接安全性更低,因为没有tcp的三次握手
  • 应用:

Websocket

  • 持久化协议,是HTML5的东西
  • 建立在TCP协议上,或者说借用了HTTP的协议来完成一次握手,当服务器完成协议升级后(HTTP->Websocket),服务端就可以主动推送信息给客户端啦。
  • 标识符:ws/wss
  • 特点:性能开销小、通信效率高
  • 传统方案:
    1. Ajax轮循: 浏览器隔个几秒就发送一次请求,询问服务器是否有新信息
    2. 长连接(long pull): 客户端发起连接后,没消息,就一直不返回Response给客户端。直到有消息才返回

get和post的区别

网络错误码

2xx 请求成功,绿色标识

3xx 重定向

4xx 请求错误

  • 404:服务器找不到请求的页面
  • 403: 禁止访问,服务器拒绝访问

5xx 请求错误

  • 500:Inter Server Error,服务器执行请求时发生错误
  • 502:错误网关 服务器作为网关或代理,从服务器无法收到无效响应

->>> 博客原文 <<<-