HTML、HTTP 和 网络安全

833 阅读8分钟

HTML

如何理解 HTML 语义化?

用过哪些 HTML 5 标签?

meta都有哪些?作用是什么?

参考答案

meta标签共有两个属性,它们分别是http-equiv属性和name属性,不同的属性又有不同的参数值,这些不同的参数值就实现了不同的网页功能。

  1. name属性   name属性主要用于描述网页,与之对应的属性值为content,content中的内容主要是便于 搜索引擎 机器人查找信息和分类信息用的。

  meta标签的name属性语法格式是:<meta name="参数" content="具体的参数值">

  其中name属性主要有以下几种参数:

  • Keywords(关键字) 说明:keywords用来告诉搜索引擎你网页的关键字是什么。

    举例:<meta name ="keywords" content="science,education,culture,politics,ecnomics,relationships, entertaiment, human"
  • description(网站内容描述) 说明:description用来告诉搜索引擎你的网站主要内容。

    举例:<meta name="description" content="This page is about the meaning of science, education,culture."
  • robots(机器人向导) 说明:robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。 content的参数有all,none,index,noindex,follow,nofollow。默认是all。

      举例:<meta name="robots" content="none"
  • author(作者) 说明:标注网页的作者

    举例:<meta name="author" content="root,root@21cn.com"
  1. http-equiv属性

    http-equiv顾名思义,相当于http的文件头作用,它可以向浏览器传回一些有用的信息,以帮助正确和精确地显示网页内容,与之对应的属性值为content,content中的内容其实就是各个参数的变量值。

    meta标签的http-equiv属性语法格式是:<meta http-equiv="参数" content="参数变量值">

    其中http-equiv属性主要有以下几种参数:

    • A、Expires(期限) 说明:可以用于设定网页的到期时间。一旦网页过期,必须到服务器上重新传输。 用法:<meta http-equiv="expires" content="Fri, 12 Jan 2001 18:18:18 GMT"> 注意:必须使用GMT的时间格式。

    • B、Pragma(cache模式) 说明:禁止浏览器从本地计算机的缓存中访问页面内容。 用法:<meta http-equiv="Pragma" content="no-cache"> 注意:这样设定,访问者将无法脱机浏览。

    • C、Refresh(刷新) 说明:自动刷新并指向新页面。 用法:<meta http-equiv="Refresh" content="2;URL=www.root.net"> 注意:其中的2是指停留2秒钟后自动刷新到URL网址。

    • D、Set-Cookie(cookie设定) 说明:如果网页过期,那么存盘的cookie将被删除。 用法:<meta http-equiv="Set-Cookie" content="cookievalue=xxx; expires=Friday, 12-Jan-2001 18:18:18 GMT; path=/"> 注意:必须使用GMT的时间格式。

    • E、Window-target(显示窗口的设定) 说明:强制页面在当前窗口以独立页面显示。 用法:<meta http-equiv="Window-target" content="_top"> 注意:用来防止别人在框架里调用自己的页面。

    • F、content-Type(显示字符集的设定) 说明:设定页面使用的字符集。 用法:<meta http-equiv="content-Type" content="text/html; charset=gb2312">

参考: blog.csdn.net/fu_manxing/…

prfetch、preload

async 、defer区别和使用

css 为什么放到前面?

js为什么尽量放到后面?,如果要放到前面,怎么办?

重绘和回流(重排)

浏览器渲染机制

单页应用,爬虫抓取,seo 怎么优化,vue-ssr,服务端渲染,^_^ 请开始你得表演!!!!

BOM 之 location.hash & History

HTTP

输入url发生了什么?

http 状态码

www.cnblogs.com/lienen/p/10…

www.runoob.com/http/http-s…

blog.csdn.net/beyond150/a…

blog.csdn.net/banana96053…

developer.mozilla.org/zh-CN/docs/…

http、https区别

参考网址:www.cnblogs.com/zhangyfr/p/…

  • HTTPS协议需要到CA申请证书,一般免费证书很少,需要交费。

  • HTTP协议运行在TCP之上,所有传输的内容都是明文,HTTPS运行在SSL/TLS之上,SSL/TLS运行在TCP之上,所有传输的内容都经过加密的。

  • HTTP和HTTPS使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。

  • HTTPS可以有效的防止运营商劫持,解决了防劫持的一个大问题。

http1.0、http2.0区别

https,证书是如何校验的

说说你了解的HTTP/2

juejin.im/post/684490…

影响一个 HTTP 网络请求的因素主要有两个:带宽和延迟。

带宽:如果说我们还停留在拨号上网的阶段,带宽可能会成为一个比较严重影响请求的问题,但是现在网络基础建设已经使得带宽得到极大的提升,我们不再会担心由带宽而影响网速,那么就只剩下延迟了。

延迟:

1.浏览器阻塞(HOL blocking):浏览器会因为一些原因阻塞请求。浏览器对于同一个域名,同时只能有 4 个连接(这个根据浏览器内核不同可能会有所差异),超过浏览器最大连接数限制,后续请求就会被阻塞。
2.DNS 查询(DNS Lookup):浏览器需要知道目标服务器的 IP 才能建立连接。将域名解析为 IP 的这个系统就是 DNS。这个通常可以利用DNS缓存结果来达到减少这个时间的目的。
3.建立连接(Initial connection):HTTP 是基于 TCP 协议的,浏览器最快也要在第三次握手时才能捎带 HTTP 请求报文,达到真正的建立连接,但是这些连接无法复用会导致每次请求都经历三次握手和慢启动。三次握手在高延迟的场景下影响较明显,慢启动则对文件类大请求影响较大。

http请求头有哪些、响应头有哪些?

七层网络协议(变态,记不住,看你吧)

讲tcp/ip网络层、三次握手,为什么不能两次握手

什么是sql洪泛攻击?

了解就行,发生在三次握手的时候

websocket握手过程

HTTPS 是什么?具体流程

WebSocket与Ajax的区别

TCP 如何保证有效传输及拥塞控制原理。

TCP 协议怎么保证可靠的,UDP 为什么不可靠?

tcp/ip网络层,http的特点

http强行使用udp能实现吗?

TCP和UDP总结(区别、优缺点、应用实例)

HTTP 缓存有哪几种?

http缓存,史上最详细讲解!!!

高频面试题,这个也可以放到性能优化里讲,一定要会

web缓存

高频考点,区别,用法
cookie、session、localStorage、sessionStorage

web缓存(Cookie V.S. Session V.S. LocalStorage V.S. SessionStorage)

如何实现一个可设置过期时间的localStorage

查看本地localstorage都有哪些

GET 和 POST 的区别

浏览器indexedDB

浏览器渲染过程,回流重绘等等,load、DOMContentLoaded等等事件的触发顺序

安全

什么是跨域?有哪些方式可以实现跨域?

jsonp
access-control-allow-origin
websocket
socket
iframe
window.name
还有好几个,看汇总的面试题吧,里面应该有 script、图片本身自带跨域功能

常见的跨域解决方案(全)

前端跨域常用方法小结

手写实现jsonp

什么是xss? 攻击方式有哪些?预防方式有哪些?

参考答案

github.com/dwqs/blog/i…

XSS(Cross Site Scripting),即跨站脚本攻击,是一种常见于web应用程序中的计算机安全漏洞.

XSS攻击涉及到三方:攻击者,用户,web server。

XSS攻击就是攻击者通过各种办法,在用户访问的网页中插入自己的脚本,让其在用户访问网页时在其浏览器中进行执行。

攻击者通过插入的脚本的执行,来获得用户的信息,比如cookie,发送到攻击者自己的网站(跨站了)。所以称为跨站脚本攻击。

XSS可以分为反射型XSS和持久性XSS,还有DOM Based XSS。(一句话,XSS就是在用户的浏览器中执行攻击者自己定制的脚本。)

预防:
其恶意脚本都是来自用户的输入。因此,可以使用过滤用户输入的方法对恶意脚本进行过滤。
1、获取用户的输入,不用innerHtml,用innerText.

2、对用户的输入进行过滤,如对& < > " ' /等进行转义;

防范:
1、HttpOnly,禁止页面的JS访问带有HttpOnly属性的Cookie。
2、输入检查,启用“白名单原则”,可用于标签、属性或事件,只让正常的“adiv”等标签通过。
3、输出检查,如果输出到事件或脚本中,则再做一次JavaScriptEncode;如果输出到HTML内容或属性中,就再做一次HtmlEncode。
4、内容安全策略(CSP,Content Security Policy)用于指定哪些内容可执行。将用户输入的部分标为不可执行,就不会产生实际的危害。

www.cnblogs.com/yadiblogs/p…

什么是csrf? 攻击方式有哪些?预防方式有哪些?

参考答案

blog.csdn.net/meism5/arti…

blog.csdn.net/namechenfl/…

cookie是不能跨域访问的,为什么会有csrf攻击?

参考答案

浏览器会依据加载的域名附带上对应域名cookie。就是如果用户在a网站登录且生成了授权的cookies,然后访问b网站,b站故意构造请求a站的请求,如删除操作之类的,用script,img或者iframe之类的加载a站的地址,浏览器会附带上a站此登录用户的授权cookie信息,这样就构成crsf,会删除掉当前用户的数据。

什么是csp? 怎么设置csp?

什么是sql注入

参考答案

SYN攻击是什么?

其他前端安全面试题总结