首页 > Web开发 > 详细

【接口】【面试题】http协议相关面试题

时间:2019-03-04 10:54:23      阅读:209      评论:0      收藏:0      [点我收藏+]

浏览器输入 url 按回车背后经历了哪些?
1.在 PC 浏览器的地址栏输入一串 URL,然后按 Enter 键这个页面渲染出来,这个过程中都发生了什么事?

1、首先,在浏览器地址栏中输入 url,先解析 url,检测 url 地址是否合法

2、浏览器先查看浏览器缓存-系统缓存-路由器缓存,如果缓存中有,会直接在屏幕中显示页面内容。若没有,则跳到第三步操作。

浏览器缓存:浏览器会记录 DNS 一段时间,因此,只是第一个地方解析 DNS 请求;操作系统缓存:如果在浏览器缓存中不包含这个记录,则会使系统调用操作系统,获取操作系统的记录(保存最近的 DNS 查询缓存);

路由器缓存:如果上述两个步骤均不能成功获取 DNS 记录,继续搜索路由器缓存;

ISP 缓存:若上述均失败,继续向 ISP 搜索。

3、在发送 http 请求前,需要域名解析(DNS 解析),解析获取相应的 IP 地址。

4、浏览器向服务器发起 tcp 连接,与浏览器建立 tcp 三次握手。

5、握手成功后,浏览器向服务器发送 http 请求,请求数据包。

6、服务器处理收到的请求,将数据返回至浏览器

7、浏览器收到 HTTP 响应

8、浏览器解码响应,如果响应可以缓存,则存入缓存

9、 浏览器发送请求获取嵌入在 HTML 中的资源(html,css,javascript,图片,音乐······),对于未知类型,会弹出对话框。

10、 浏览器发送异步请求。

11、页面全部渲染结束。

GET 和 POST 的区别

 

2.get 和 post 请求区别,这个是被问烂的题了首先这个题看似简单,实际上是个送命题!如果你百度搜到的标准答案可能是这样的(本标准答案参考自 w3schools):

? GET 在浏览器回退时是无害的,而 POST 会再次提交请求。

? GET 产生的 URL 地址可以被 Bookmark,而 POST 不可以。

? GET 请求会被浏览器主动 cache,而 POST 不会,除非手动设置。

? GET 请求只能进行 url 编码,而 POST 支持多种编码方式。

? GET 请求参数会被完整保留在浏览器历史记录里,而 POST 中的参数不会被保留。

? GET 请求在 URL 中传送的参数是有长度限制的,而 POST 么有。

? 对参数的数据类型,GET 只接受 ASCII 字符,而 POST 没有限制。

? GET 比 POST 更不安全,因为参数直接暴露在 URL 上,所以不能用来传递敏感信息。

? GET 参数通过 URL 传递,POST 放在 Request body 中。

如果我告诉你,你死记硬背的这些所谓“标准答案”不是面试官想要的,你肯定不服,首先从安全性讲,get 和 post 都一样,没啥所谓的哪个更安全get 请求参数在 url 地址上,直接暴露,post 请求的参数放 body 部分,按 F12也直接暴露了,所以没啥安全性可言“

GET 参数通过 URL 传递,POST 放在 Request body 中”这个其实也不准,post请求也可以没 body,也可以在 url 传递呢?

如果我告诉你 get 请求和 post 请求本质上没区别,你肯定不信!GET 和 POST 有一个重大区别,简单的说:

GET 产生一个 TCP 数据包;POST 产生两个 TCP 数据包。

长的说:

对于 GET 方式的请求,浏览器会把 http header 和 data 一并发送出去,服务器响应 200(返回数据);
而对于 POST,浏览器先发送 header,服务器响应 100 continue,浏览器再发送data,服务器响应 200 ok(返回数据)

 

【接口】【面试题】http协议相关面试题

原文:https://www.cnblogs.com/zhuzhubaoya/p/10469188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!