We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HTTP面试题 参考文献 大白话三次握手 Http
七层:应用层/表示层/会话层/传输层/网络层/数据链路层/物理层 五层:应用层/传输层/网络层/网络接口层
1、超文本传输协议(HTTP):万维网的基本协议; 2、文件传输(TFTP简单文件传输协议); 3、远程登录(Telnet),提供远程访问其它主机功能, 它允许用户登录internet主机,并在这台主机上执行命令; 4、网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法, 以及配置管理,统计信息收集,性能管理及安全管理等; 5、域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址。
1、Internet协议(IP); 2、Internet控制信息协议(ICMP); 3、地址解析协议(ARP); 4、反向地址解析协议(RARP)。
DNS (Domain Name System)是互联网中的重要基础设施,负责对域名的解析工作,为了保证高可用、高并发和分布式,它设计成了树状的层次结构。 查找哪台机器有你需要的资源,互联网上每一台计算机的唯一标识是它的IP地址。网址到IP地址的转换,这个过程就是DNS解析
CDN利用DNS重定向技术。DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。
CDN(Content Delivery Network)就是内容分发网络。
CDN 网络则是在用户和服务器之间增加 Cache 层,将用户的访问请求引导到Cache 节点而不是服务器源站点,要实现这一目的,主要是通过接管DNS 实现
-缓存服务器根据浏览器提供的域名,通过Cache 内部专用DNS 解析得到此域名源服务器的真实IP 地址,再由缓存服务器向此真实IP 地址提交访问请求
HTTPS 就是在 HTTP 和 TCP 协议中间加入了 SSL/TLS 安全套接层。 结合非对称加密和对称加密的各自优点,配合证书。既保证了安全性,也保证了传输效率。 目前应用最广泛的是TLS1.2,实现原理如下:
服务器使用 Cache-Control 来设置缓存策略,常用 max-age 来表示资源的有效期。
验证资源是否失效就需要使用条件请求。常用的是 If-Modified-Since 和 If-None-Match,收到 304 状态码就可以复用缓存里的资源。 (If-None-Match 比 If-Modified-Since 优先级更高) 验证资源是否被修改的条件有两个 Last-modified 和 ETag (ETag 比 Last-modified 的精确度更高),需要预先在服务端的响应报文里设置,配合条件请求使用。
重定向是服务器发起的跳转,要求客户端使用新的 URI 重新发送请求。在响应头字段 Location 中指示了要跳转的 URI。使用 Refresh 字段,还可以实现延时重定向。 301 / 302 是常用的重定向状态码。分别代表永久性重定向和临时性重定向。
除此之外还有:
301,永久重定向:在请求的URL已被移除时使用,响应的location首部中应包含资源现在所处的URL 302,临时重定向:和永久重定向类似,客户端应用location给出URL临时定位资源,将来的请求仍为原来的URL。
所以浏览器会进行2次请求。第一次返回301/302
服务器响应 状态码为301+ location为新的url
浏览器会再次请求新的URL
http网站跳转到https网站 二级域名跳转到主域名,http://www.abc.com跳转到http://abc.com 404页面失效跳转到新的页面 老的域名跳转到新的域名
所以301跳转,对用户体验和谷歌蜘蛛都是比较友好的,权重发生了传递,当然对SEO也是有好处的。
302使用的情况不太常见,因为这是个临时性的跳转,暂时性的把页面A跳转到页面B,但是最终还会使用页面A,这个情况一般就是网站短时间内进行改版,在不影响用户体验的情况下,临时把页面跳转到临时页面
埋点是通过img src 实现的 前端通过window.[__bfi].push()方法,ubt将push方法声明为一个函数,函数的功能是对argument进行处理
Referrer-Policy 首部用来监管哪些访问来源信息——会在 Referer 中发送——应该被包含在生成的请求当中。
Referrer-Policy: no-referrer Referrer-Policy: no-referrer-when-downgrade Referrer-Policy: origin Referrer-Policy: origin-when-cross-origin Referrer-Policy: same-origin Referrer-Policy: strict-origin Referrer-Policy: strict-origin-when-cross-origin Referrer-Policy: unsafe-url
no-referrer 整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。 no-referrer-when-downgrade (默认值) 在没有指定任何策略的情况下用户代理的默认行为。在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。 origin 在任何情况下,仅发送文件的源作为引用地址。例如 https://example.com/page.html 会将 https://example.com/ 作为引用地址。 origin-when-cross-origin 对于同源的请求,会发送完整的URL作为引用地址,但是对于非同源请求仅发送文件的源。 same-origin 对于同源的请求会发送引用地址,但是对于非同源请求则不发送引用地址信息。 strict-origin 在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS),但是在降级的情况下不会发送 (HTTPS->HTTP)。 strict-origin-when-cross-origin 对于同源的请求,会发送完整的URL作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)。 unsafe-url 无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。
使用OPTIONS方法对服务器发起请求,可以检测服务器支持哪些 HTTP 方法
规范要求,对那些可能对服务器数据产生副作用的 HTTP 请求方法(特别是 GET 以外的 HTTP 请求,或者搭配某些 MIME 类型的 POST 请求),浏览器必须首先使用 OPTIONS 方法发起一个预检请求(preflight request),从而获知服务端是否允许该跨域请求。
所以这个跨域请求触发了浏览器自动发起OPTIONS请求,看看此次跨域请求具体触发了哪些条件。
Access-Control-Max-Age这个响应首部表示 preflight request (预检请求)的返回结果(即 Access-Control-Allow-Methods 和Access-Control-Allow-Headers 提供的信息) 可以被缓存的最长时间,单位是秒。(MDN)
The text was updated successfully, but these errors were encountered:
No branches or pull requests
HTTP面试题
参考文献
大白话三次握手
Http
网络协议分层
七层:应用层/表示层/会话层/传输层/网络层/数据链路层/物理层
五层:应用层/传输层/网络层/网络接口层
应用层包括
1、超文本传输协议(HTTP):万维网的基本协议;
2、文件传输(TFTP简单文件传输协议);
3、远程登录(Telnet),提供远程访问其它主机功能, 它允许用户登录internet主机,并在这台主机上执行命令;
4、网络管理(SNMP简单网络管理协议),该协议提供了监控网络设备的方法, 以及配置管理,统计信息收集,性能管理及安全管理等;
5、域名系统(DNS),该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址。
网络层包括
1、Internet协议(IP);
2、Internet控制信息协议(ICMP);
3、地址解析协议(ARP);
4、反向地址解析协议(RARP)。
TCP 和 UDP 区别
DNS 解析
DNS 解析过程
DNS 缓存
DNS 负载均衡
CDN利用DNS重定向技术。DNS服务器会返回一个跟用户最接近的点的IP地址给用户,CDN节点的服务器负责响应用户的请求,提供所需的内容。
CDN 原理
CDN 网络则是在用户和服务器之间增加 Cache 层,将用户的访问请求引导到Cache 节点而不是服务器源站点,要实现这一目的,主要是通过接管DNS 实现
-缓存服务器根据浏览器提供的域名,通过Cache 内部专用DNS 解析得到此域名源服务器的真实IP 地址,再由缓存服务器向此真实IP 地址提交访问请求
输入url后发生了什么
状态码整理
HTTP 请求方法
HTTPS的理解
HTTPS 就是在 HTTP 和 TCP 协议中间加入了 SSL/TLS 安全套接层。
结合非对称加密和对称加密的各自优点,配合证书。既保证了安全性,也保证了传输效率。
目前应用最广泛的是TLS1.2,实现原理如下:
TLS1.3 则简化了握手过程,完全握手只需要一个消息往返,提升了性能。不仅如此,还对部分不安全的加密算法进行了删减。
HTTP缓存策略
强缓存
服务器使用 Cache-Control 来设置缓存策略,常用 max-age 来表示资源的有效期。
协商缓存
验证资源是否失效就需要使用条件请求。常用的是 If-Modified-Since 和 If-None-Match,收到 304 状态码就可以复用缓存里的资源。
(If-None-Match 比 If-Modified-Since 优先级更高)
验证资源是否被修改的条件有两个 Last-modified 和 ETag (ETag 比 Last-modified 的精确度更高),需要预先在服务端的响应报文里设置,配合条件请求使用。
HTTP重定向
重定向是服务器发起的跳转,要求客户端使用新的 URI 重新发送请求。在响应头字段 Location 中指示了要跳转的 URI。使用 Refresh 字段,还可以实现延时重定向。
301 / 302 是常用的重定向状态码。分别代表永久性重定向和临时性重定向。
除此之外还有:
HTTP 的常用的首部字段
通用首部字段
请求首部字段
响应首部字段
实体首部字段
HTTP状态码
1xx
2xx
3xx
301 302
301,永久重定向:在请求的URL已被移除时使用,响应的location首部中应包含资源现在所处的URL
302,临时重定向:和永久重定向类似,客户端应用location给出URL临时定位资源,将来的请求仍为原来的URL。
所以浏览器会进行2次请求。第一次返回301/302
服务器响应 状态码为301+ location为新的url
浏览器会再次请求新的URL
一般使用301的情况有下面几种
http网站跳转到https网站
二级域名跳转到主域名,http://www.abc.com跳转到http://abc.com
404页面失效跳转到新的页面
老的域名跳转到新的域名
所以301跳转,对用户体验和谷歌蜘蛛都是比较友好的,权重发生了传递,当然对SEO也是有好处的。
302使用的情况不太常见,因为这是个临时性的跳转,暂时性的把页面A跳转到页面B,但是最终还会使用页面A,这个情况一般就是网站短时间内进行改版,在不影响用户体验的情况下,临时把页面跳转到临时页面
4xx
5xx
埋点数据发送请求
埋点是通过img src 实现的
前端通过window.[__bfi].push()方法,ubt将push方法声明为一个函数,函数的功能是对argument进行处理
Referrer-Policy 首部用来监管哪些访问来源信息——会在 Referer 中发送——应该被包含在生成的请求当中。
no-referrer
整个 Referer 首部会被移除。访问来源信息不随着请求一起发送。
no-referrer-when-downgrade (默认值)
在没有指定任何策略的情况下用户代理的默认行为。在同等安全级别的情况下,引用页面的地址会被发送(HTTPS->HTTPS),但是在降级的情况下不会被发送 (HTTPS->HTTP)。
origin
在任何情况下,仅发送文件的源作为引用地址。例如 https://example.com/page.html 会将 https://example.com/ 作为引用地址。
origin-when-cross-origin
对于同源的请求,会发送完整的URL作为引用地址,但是对于非同源请求仅发送文件的源。
same-origin
对于同源的请求会发送引用地址,但是对于非同源请求则不发送引用地址信息。
strict-origin
在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS),但是在降级的情况下不会发送 (HTTPS->HTTP)。
strict-origin-when-cross-origin
对于同源的请求,会发送完整的URL作为引用地址;在同等安全级别的情况下,发送文件的源作为引用地址(HTTPS->HTTPS);在降级的情况下不发送此首部 (HTTPS->HTTP)。
unsafe-url
无论是同源请求还是非同源请求,都发送完整的 URL(移除参数信息之后)作为引用地址。
OPTIONS 请求
使用OPTIONS方法对服务器发起请求,可以检测服务器支持哪些 HTTP 方法
所以这个跨域请求触发了浏览器自动发起OPTIONS请求,看看此次跨域请求具体触发了哪些条件。
跨域请求时,OPTIONS请求触发条件
优化OPTIONS请求:Access-Control-Max-Age 或者 避免触发
The text was updated successfully, but these errors were encountered: