You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
204 No Content: 服务器成功处理了请求,但不需要返回任何实体内容,并且希望返回更新了的元信息
205 Reset Content:
206 Partial Content:
3XX:重定向
300 Multiple Choices:
301 Moved Permanently:被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一。(永久重定向)
302 Found:请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。(临时重定向)
303 See Other:
304 Not Modified:如果客户端发送了一个带条件的 GET 请求且该请求已被允许,而文档的内容(自上次访问以来或者根据请求的条件)并没有改变,则服务器应当返回这个状态码;(使用缓存内容)
305 Use Proxy:
306 (unused):
307 Temporary Redirect:
4XX:客户端错误
400 Bad Request:1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。 2、请求参数有误。(错误请求)
401 Unauthorized:当前请求需要用户验证(权限校验)
402 Payment Required:
403 Forbidden:服务器已经理解请求,但是拒绝执行它;(禁止访问)
404 Not Found:请求失败,请求所希望得到的资源未被在服务器上发现;(服务器上没有找到对应的资源)但在资源以前存在而现在不存在的情况下,有时用来替代404 代码。如果资源已永久删除,应当使用 301 指定资源的新位置。
405 Method Not Allowed:
406 Not Acceptable:
407 Proxy Authentication Required:
408 Request Timeout:
409 Conflict:
410 Gone:被请求的资源在服务器上已经不再可用,而且没有任何已知的转发地址
411 Length Required:
412 Precondition Failed:
413 Request Entity Too Large:
414 Request-URI Too Long:
415 Unsupported Media Type:
416 Requested Range Not Satisfiable:
417 Expectation Failed:
5XX: 服务器错误
500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。(服务异常)
501 Not Implemented:服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
502 Bad Gateway:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。
503 Service Unavailable:
504 Gateway Timeout:
505 HTTP Version Not Supported:
The text was updated successfully, but these errors were encountered:
HTML5
html5有哪些新特性、移除了那些元素?
Canvas和SVG有什么区别?
web综合
什么是web语义化,有什么好处
从浏览器地址栏输入url到显示页面的步骤(以HTTP为例)
1. 如果资源未缓存,发起新请求
2. 如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证。
1. 检验新鲜通常有两个HTTP头进行控制Expires和Cache-Control:
1. HTTP1.0提供Expires,值为一个绝对时间表示缓存新鲜日期
2. HTTP1.1增加了Cache-Control: max-age=,值为以秒为单位的最大新鲜时间
1. 浏览器缓存
2. 本机缓存
3. hosts文件
4. 路由器缓存
5. ISP DNS缓存
6. DNS递归查询(可能存在负载均衡导致每次IP不一样)
1. 客户端发送一个TCP的SYN=1,Seq=X的包到服务器端口
2. 服务器发回SYN=1, ACK=X+1, Seq=Y的响应包
3. 客户端发送ACK=Y+1, Seq=Z
1. Tokenizing:根据HTML规范将字符流解析为标记
2. Lexing:词法分析将标记转换为对象并定义属性和规则
3. DOM construction:根据HTML标记关系将对象组成DOM树
解析过程中遇到图片、样式表、js文件,启动下载
1. Tokenizing:字符流转换为标记流
2. Node:根据标记创建节点
3. CSSOM:节点创建CSSOM树
1. 从DOM树的根节点遍历所有可见节点,不可见节点包括:1)script,meta这样本身不可见的标签。2)被css隐藏的节点,如display: none
2. 对每一个可见节点,找到恰当的CSSOM规则并应用
3. 发布可视节点的内容和计算样式
1. 浏览器创建Document对象并解析HTML,将解析到的元素和文本节点添加到文档中,此时document.readystate为loading,HTML解析器遇到没有async和defer的script时,将他们添加到文档中,然后执行行内或外部脚本。这些脚本会同步执行,并且在脚本下载和执行时解析器会暂停。这样就可以用document.write()把文本插入到输入流中。同步脚本经常简单定义函数和注册事件处理程序,他们可以遍历和操作script和他们之前的文档内容,当解析器遇到设置了async属性的script时,开始下载脚本并继续解析文档。脚本会在它下载完成后尽快执行,但是解析器不会停下来等它下载。异步脚本禁止使用document.write(),它们可以访问自己script和之前的文档元素
2. 当文档完成解析,document.readState变成interactive,所有defer脚本会按照在文档出现的顺序执行,延迟脚本能访问完整文档树,禁止使用document.write()
3. 浏览器在Document对象上触发DOMContentLoaded事件此时文档完全解析完成,浏览器可能还在等待如图片等内容加载,等这些内容完成载入并且所有异步脚本完成载入和执行,document.readState变为complete,window触发load事件
显示页面(HTML解析过程中会逐步显示页面)
提高web网站性能
content方面
1. 减少HTTP请求:合并文件、CSS精灵、inline Image
2. 减少DNS查询:DNS查询完成之前浏览器不能从这个主机下载任何任何文件。方法:DNS缓存、将资源分布到恰当数量的主机名,平衡并行下载和DNS查询
3. 避免重定向:多余的中间访问
4. 使Ajax可缓存
5. 非必须组件延迟加载
6. 未来所需组件预加载
7. 减少DOM元素数量
8. 将资源放到不同的域下:浏览器同时从一个域下载资源的数目有限,增加域可以提高并行下载量
9. 减少iframe数量,甚至禁用iframe标签,iframe会阻塞主页面的Onload事件搜索引擎的检索程序无法解读这种页面,不利于SEO,iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript
动态给iframe添加src属性值,这样可以绕开以上两个问题
10. 不要404
Server方面
1. 使用CDN
2. 添加Expires或者Cache-Control响应头
3. 对组件使用Gzip压缩
4. 配置ETag
5. Flush Buffer Early
6. Ajax使用GET进行请求
7. 避免空src的img标签
Cookie方面
css方面
Javascript方面
图片方面
HTML5的离线储存怎么使用,工作原理能不能解释一下?
在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件
原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示
如何使用:
浏览器是怎么对HTML5的离线储存资源进行管理和加载的呢?在线的情况下,浏览器发现html头部有manifest属性,它会请求manifest文件,如果是第一次访问app,那么浏览器就会根据manifest文件的内容下载相应的资源并且进行离线存储。如果已经访问过app并且资源已经离线存储了,那么浏览器就会使用离线的资源加载页面,然后浏览器会对比新的manifest文件与旧的manifest文件,如果文件没有发生改变,就不做任何操作,如果文件改变了,那么就会重新下载文件中的资源并进行离线存储。离线的情况下,浏览器就直接使用离线存储的资源。
HTTP
500 Internal Server Error:服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。一般来说,这个问题都会在服务器的程序码出错时出现。(服务异常)
501 Not Implemented:服务器不支持当前请求所需要的某个功能。当服务器无法识别请求的方法,并且无法支持其对任何资源的请求。
502 Bad Gateway:由于临时的服务器维护或者过载,服务器当前无法处理请求。这个状况是临时的,并且将在一段时间以后恢复。
503 Service Unavailable:
504 Gateway Timeout:
505 HTTP Version Not Supported:
The text was updated successfully, but these errors were encountered: