http相关面试题,拿去吧

本文涉及的产品
云解析 DNS,旗舰版 1个月
云解析DNS,个人版 1个月
全局流量管理 GTM,标准版 1个月
简介: http相关面试题

https

https是在http与tcp之间增添了一个加密/身份验证层(SSL)

http与https区别

  1. http是明文传输信息,而https则是具有安全性的SSL加密传输,比http更安全;
  2. http和https连接方式不同,端口也不一样,http是80,https是443

http无状态协议是什么?怎么解决

无状态协议是对于事务处理没有记忆能力。
使用Cookie来解决无状态。

常用的HTTP方法

  1. GET、POST
  2. PUT: 传输文件
  3. DELETE:删除文件
  4. OPTIONS:查询相应URI支持的HTTP方法

完整HTTP请求所经历的7个步骤

  1. 建立TCP连接
  2. 浏览器向服务器发送请求行
  3. 浏览器发送请求头
  4. 服务器应答
  5. 服务器发送应答头
  6. 服务器向浏览器发送数据
  7. 服务器关闭TCP连接

http的keep-alive

TCP连接在发送后将仍然保持打开状态,浏览器可以继续通过相同的连接发送请求,节省了建立连接所需时间和网络带宽。

Ajax请求过程

  1. 创建XMLHttpRequest对象
  2. 设置回调函数
  3. 与服务器建立链接,open()
  4. 向服务器发送数据,send()
  5. 在回调函数中判断响应状态并处理数据

常见HTTP状态码

200:请求成功
301:永久性重定向
302:临时重定向
403:请求的对应资源禁止被访问
404:服务器无法找到对应资源
500:服务器内部错误
503:服务器正忙

网页从输入网址到加载完成的过程

  1. 浏览器输入url
  2. 域名解析(DNS解析),解析获取相应IP地址
  3. 浏览器向服务器发起并建立tcp连接
  4. 浏览器向服务器发送http请求
  5. 服务器接收请求,将数据发送浏览器
  6. 浏览器获取文件,解析html源码
  7. 生成Dom树,解析css样式,js交互,完成渲染

浏览器同源策略

同源策略是指"协议+域名+端口"三者相同
分为两种:DOM 同源策略,XMLHttpRequest同源策略

跨域方式

  1. 通过jsonp跨域
  2. document.domain + iframe跨域
  3. location.hash + iframe
  4. window.name + iframe跨域
  5. postMessage跨域
  6. nginx代理跨域
  7. nodejs中间件代理跨域
  8. WebSocket协议跨域

网站性能优化

  1. 减少HTTP请求
  2. 利用浏览器缓存
  3. 减少DOM操作
  4. 首屏加载和按需加载
  5. 减少浏览器重排和重绘
  6. js和css文件合并压缩
  7. CSS资源放顶部,JS资源放底部
  8. 图片使用png格式

虚拟DOM

用js实现DOM树,用diff算法对每一层比较,找出最小变更,然后改变实际DOM,达到性能优化的方案。

浏览器重排和重绘

重排是DOM元素的几何变化,DOM树结构变化,渲染树需要重新计算;
重绘是当页面中的元素样式的改变并不影响它在文档流中的位置,比如改变背景,颜色,字体等等,浏览器会根据元素的新属性重新绘制,使元素呈现新的外观。

常见浏览器内核

IE浏览器:Trident内核
Chrome浏览器:早期Webkit内核,现为Blink内核
Firefox浏览器:Gecko内核
Safari浏览器:Webkit内核
360浏览器:Trident + Webkit双内核
QQ浏览器:Trident + Webkit双内核

常见兼容性问题

  1. 不同浏览器的默认margin、padding不同
    解决方案:css里增加通配符*{margin:0;padding:0}

  2. 事件绑定不同
    IE浏览器: dom.attachEvent()
    其他:dom.addEventListener()

  3. Ajax略有不同
    IE浏览器:ActiveXObject对象
    其他:XMLHttpReuest对象

相关文章
|
4月前
|
算法 网络协议 安全
HTTP 原理和面试题
HTTP 原理和面试题
|
3月前
|
缓存 网络协议 安全
Android网络面试题之Http基础和Http1.0的特点
**HTTP基础:GET和POST关键差异在于参数传递方式(GET在URL,POST在请求体),安全性(POST更安全),数据大小限制(POST无限制,GET有限制),速度(GET较快)及用途(GET用于获取,POST用于提交)。面试中常强调POST的安全性、数据量、数据类型支持及速度。HTTP 1.0引入了POST和HEAD方法,支持多种数据格式和缓存,但每个请求需新建TCP连接。**
40 5
|
3月前
|
缓存 网络协议 Android开发
Android网络面试题之Http1.1和Http2.0
HTTP/1.1 引入持久连接和管道机制提升效率,支持分块传输编码和更多请求方式如PUT、PATCH。Host字段指定服务器域名,RANGE用于断点续传。HTTP/2变为二进制协议,实现多工处理,头信息压缩和服务器推送,减少延迟并优化资源加载。HTTP不断发展,从早期的简单传输到后来的高效交互。
39 0
Android网络面试题之Http1.1和Http2.0
|
4月前
|
JSON Java API
Android 深入Http(5)从Retrofit源码来看Http,最新Android开发面试解答
Android 深入Http(5)从Retrofit源码来看Http,最新Android开发面试解答
|
4月前
|
缓存 安全 网络协议
【面试必备】HTTP和HTTPS是什么?有什么差异?
HTTP(超文本传输协议)和HTTPS(超文本传输安全协议)是用于在互联网上传输数据的协议。它们都是应用层协议,建立在TCP/IP协议栈之上,用于客户端(如浏览器)和服务器之间的通信。
80 2
|
4月前
|
XML 开发框架 .NET
C# .NET面试系列八:ADO.NET、XML、HTTP、AJAX、WebService
## 第二部分:ADO.NET、XML、HTTP、AJAX、WebService #### 1. .NET 和 C# 有什么区别? .NET(通用语言运行时): ```c# 定义:.NET 是一个软件开发框架,提供了一个通用的运行时环境,用于在不同的编程语言中执行代码。 作用:它为多语言支持提供了一个统一的平台,允许不同的语言共享类库和其他资源。.NET 包括 Common Language Runtime (CLR)、基础类库(BCL)和其他工具。 ``` C#(C Sharp): ```c# 定义: C# 是一种由微软设计的面向对象的编程语言,专门为.NET 平台开发而创建。 作
253 2
|
4月前
|
缓存 网络协议 安全
HTTP - HTTP 面试题
HTTP - HTTP 面试题
66 1
HTTP - HTTP 面试题
|
4月前
|
存储 缓存 安全
面试题:HTTP 协议包括哪些请求?
面试题:HTTP 协议包括哪些请求?
43 0
|
4月前
|
安全 应用服务中间件 Apache
面试题:HTTP长连接在什么时候会超时?
面试题:HTTP长连接在什么时候会超时?
93 0
|
4月前
|
缓存 网络协议 前端开发
2022 HTTP面试题都在这里
2022 HTTP面试题都在这里
190 0
下一篇
DDNS