输入URL之后发生的事情

输入URL之后发生的事情

  • HTTP方法: GET,POST,HEAD,PUT,DELETE
  • 对url进行解析获取里面的参数,提取域名
    • location.port
    • location.protocol包含冒号
    • location.host包含端口
    • location.hostname不包含端口
    • location.href=path+search+hash
    • location.path表示路径
    • location.search从?开始的部分
    • location.hash从#开始的部分
    • location.assign设置path
    • location.replace
    • location.reload
  • 检查缓存中是否有这个域名对应的IP地址,如果有结束
  • 检查http缓存: expires,last-modified,max-age,etag
  • http状态码:200,301,302,401,403,404,500,502
  • html5web存储:localStorage,localSession,indexDB;cookie
  • DNS概述,DNS即使用TCP又使用UDP,域名空间,DNS工作流程简述,域名解析查询:递归及迭代两者区别
  • HTTP1.1,HTTP2.0和HTTPS
    • 长连接复用和多路复用,keep-alive
    • SSL,对称加密和非对称加密,https加密过程
    • http头部
  • OSI7层模型,TCP/IP协议栈,5层网络模型
  • TCP三次握手
  • 可靠传输的工作原理:停止等待协议和连续ARQ协议
  • 滑动窗口协议:如何保证次序?如何提高吞吐量?如何实现最优解?链接
  • 描述滑动窗口协议:网络不可靠问题,比如丢包,重复包,出错,乱序;
  • 流量控制:以字节单位的滑动窗口
  • 拥塞控制:慢开始,拥塞避免,快恢复,快重传
  • 发送http请求
  • TCP四次挥手,2MSL
    • 关于TCP解释得最好的一篇博客
    • 其实关于TCP的状态转换只需要一张TCP的有限状态机就行了
  • TCP和UDP的区别:字面,可靠吗,常用端口
  • ipv4和ipv6
  • 内网映射:NAT-PT,NAT
  • 子网划分:子网掩码,CIDR(网络前缀)
  • VLAN
  • 地址解析: RARP,ARP
  • 网络路由:RIP,OSPF
  • 控制报文:ICMP, ping, traceroute
  • MAC地址
  • 网络套接字
  • 获取到html文件
  • 白屏时间
  • 构建dom树
  • 浏览器构建DOM树的顺序:遇到link文件异步请求和下载,遇到script文件同步下载并立刻执行,遇到img标签不下载图片,继续渲染后面
    • 两个阶段:标签解析,dom树构建(使用栈)
  • async和defer
  • 使用setTimeout实现setInterval
  • HTML5新特性:article,footer,header,section,aside,canvas,拖放,input,websocket
  • CSS3新特性:borders-radius,transform,translate,transition,盒模型,弹性布局,多媒体查询
  • HTML5和CSS3参考链接
  • 块级元素和行内元素
  • 垂直和水平居中
  • position,display,css盒模型,box-sizing,BFC
  • CSS的特性:层叠性,继承性和优先级
  • 内联样式,内部样式,外部样式,@import
  • CSS选择器: ID选择器,内联样式,类选择器,后代选择器,伪类选择器
  • CSS布局:响应式布局[viewport],伸缩布局,圣杯布局,双翼飞布局,流式布局,grid布局,双栏布局
  • 发送ajax请求
  • 同源策略:域名、协议和端口,通常说的域名www.baidu.com(三级域名.二级域名.顶级域名),子域名images.baidu.com,是不同域名
    • 将域:使用二级域名
  • 当初始的HTML文档被完全加载和解析完成之后,DOMContentLoaded触发(必须等待所属的script之前的样式表加载解析完成才会触发)
  • 首屏时间
  • 浏览器构建渲染树
  • 前端优化:
  • 数组扁平化
  • web页面级优化
  • iframe的使用场景有哪些?
  • 排序算法的时间复杂度
  • qq空间是一个很好的例子