0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

探究!一个数据包在网络中的心路历程

小林coding 来源:小林coding 2023-07-14 16:24 次阅读

大家好,我是小林。

对于「访问一个百度的过程,期间发生了什么?」这个问题面试中也很经常问,我之前也写过详细文章说明:探究!一个数据包在网络中的心路历程

现在问题来了。

大家知道,访问网站的时候,会有一个域名解析的过程,客户端会先拿到网站的IP地址,然后通过IP地址来进行后续的HTTP通信

afa21c16-2219-11ee-962d-dac502259ad0.png

图片

那既然如此,如果我已经知道了网站的IP地址,是不是可以跳过域名解析的过程,直接拿着IP地址去请求呢?

以百度为例,我们ping一下百度的域名,拿到它的IP地址。

afb075d6-2219-11ee-962d-dac502259ad0.png

图片

解析的IP地址是:14.119.104.189

那直接访问https://14.119.104.189,是不是也能打开百度?

结果他试了一下,发现被拒绝了!

afc79518-2219-11ee-962d-dac502259ad0.png

图片

然后这位球友就想不通了,为啥我跳过了第一步,直接用IP访问就不行呢?网站是如何做到不让直接用IP访问的?

从这个图中就可以合理的怀疑,是不是第二步中,客户端发过去的HTTP请求在使用域名和直接使用IP地址的时候有所不同,让服务器“察觉”出来你是直接使用的IP地址在访问网站,跳过了第一步。

afa21c16-2219-11ee-962d-dac502259ad0.png

图片

大胆假设,小心论证,接下来我们就来看一下是不是这样。

因为HTTPS的通信是加了密的,为了看清楚通过域名访问和通过IP访问的时候,HTTP请求内容的区别,我们使用Fildder抓包软件,这样可以看到HTTPS加密的正文内容。

首先咱们通过域名来访问一下:

affcbf4a-2219-11ee-962d-dac502259ad0.png

图片

然后通过IP地址来访问一下:

b00f5a60-2219-11ee-962d-dac502259ad0.png

图片

放在一起一对比,在请求头中就只有两个地方不一样:

b030c768-2219-11ee-962d-dac502259ad0.png

图片

分别是Host字段和Cookie字段。

这样一看,真相基本就明确了,问题多半出在这个Host字段。

为了进一步验证,我们使用Postman来直接访问https://14.119.104.189,可以看到服务器返回了403错误!

b046435e-2219-11ee-962d-dac502259ad0.png

图片

然后,我们通过Postman修改一下Host字段,将其设置为域名www.baidu.com,再试一次:

b06375be-2219-11ee-962d-dac502259ad0.png

图片

这次能成功访问了!

至此,这个问题就得到解答了:

客户端在发起HTTP请求的时候,会将其要访问的服务器地址填在Host字段。当使用域名访问的时候,这个字段的值就是域名,而通过IP地址访问的时候,这个字段的内容就是对应的IP地址。而服务器正是通过请求中的Host字段,识别出了客户端是直接通过IP访问的还是通过域名访问的。

最后给大家留一个思考题:

当我用HTTPS直接访问https://14.119.104.189的时候,浏览器给了我这样一个提示:

b072c74e-2219-11ee-962d-dac502259ad0.png

图片

这不是百度自己的SSL证书吗?为什么会有这个提示出现?

评论区说说看!

历史好文:

拿了 7 个大厂 offer,我有话说!

就按这个方向冲!

字节一面:网站显示不出来,怎么排查?

字节面试:连接一个不存在的 IP 地址,会发生什么?

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 通信
    +关注

    关注

    18

    文章

    6024

    浏览量

    135950
  • HTTP
    +关注

    关注

    0

    文章

    504

    浏览量

    31197
  • 数据包
    +关注

    关注

    0

    文章

    260

    浏览量

    24385

原文标题:直接用IP访问百度,我发现了···

文章出处:【微信号:小林coding,微信公众号:小林coding】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    请问SRIO每次出传输数据包个数数据包负载大小怎么设置?

    本帖最后由 只耳朵怪 于 2018-6-19 14:25 编辑 DSP次发送16个数据包,每个数据包256字节,次传输4096
    发表于 06-19 05:22

    请问为什么ZigBee网络组建中会频繁地广播个数据包

    测试使用10节点作为路由,1节点作为协调器。协调器广播个数据包后,路由之间会来回频繁的广播该数据包(路由之间的距离很近),这个路由转发
    发表于 08-13 08:22

    发送个数据包网络什么也看不到

    我已经编写了些代码来发送DHCCP发现包。处理器是18F97 J60。PIC-WEB-EK板。我使用WireShark来监控数据包。问题是:如果我发送个数据包
    发表于 05-24 14:53

    主动网络有什么安全威胁?

    主动网络的基本思想是将程序注入数据包,使程序和数据起随数据包在网络上传输;网络的中间节点运行
    发表于 09-20 09:00

    解决Labview报表问题的般思路

    /jishu_1591122_1_4.html这个帖子描述的问题。心路历程4:根据帖子的描述,找到Workbook这个调用节点,重新选择SaveAS,此时列表多了Workldentity这个属性,并且断线恢复。问题解决。
    发表于 04-07 11:18

    【睿赛德 RW007 WiFi 模块试用连载】RW007模块调试心路历程

    本篇帖子是我拿到RW007后的试用记录,也算是心路历程了吧,我的试用文章:https://bbs.elecfans.com/jishu_2099349_1_1.html,欢迎各位去逛逛。2021
    发表于 07-12 22:20

    AVR新手蓝牙模块调试的心路历程简介遇到的问题

    AVR新手蓝牙模块调试的心路历程简介遇到的问题1——网上的例程不好用遇到的问题2——烧录串口与蓝牙通信串口共用导致乱码遇到的问题3——波特率导致乱码调试成功代码简介我在最近做了
    发表于 11-23 08:25

    学习单片机的心路历程分享

    本人是单片机学习的萌新枚,学习单片机等知识目的就是提升自己专业方面的综合的素质修养,我将会把自己的每次的学习的内容和心理历程记录下来,分享给大家的同时也加深自己的理解。众所周知,单片机的入门51
    发表于 01-17 06:31

    为什么个数据包会收到两独立的netbufs呢?

    我在 STM32F407 中放置了网络服务器。我有静态和动态页面工作,现在正在处理文件上传功能。根据 Wireshark,浏览器向我发送了
    发表于 12-20 07:42

    网络数据包捕获机制研究

    网络数据包捕获技术,是实现入侵检测、网络安全审计的关键技术。本文改进了国外传统的数据包捕获函数库Libpcap 捕获数据包的方案。原方案
    发表于 09-01 10:09 9次下载

    ttl传输过期可能是什么原因_ttl传输过期怎么解决

    TTL是ip协议的值,它告诉网络数据包在网络的时间是否太长而应被丢弃。有很多原因使包在
    发表于 04-03 10:39 26.7w次阅读
    ttl传输<b class='flag-5'>中</b>过期可能是什么原因_ttl传输<b class='flag-5'>中</b>过期怎么解决

    能源从分布式光伏业务到综合能源业务的心路历程

    、产业和技术进步态势等焦点话题,共迎分布式光伏发展的新契机。 在模式创新及业务探索分论坛上,元能源副总裁陆少聪发表了《从1到N,元能源从分布式光伏业务到综合能源业务的心路历程》演讲,分析行业面临的痛点难点,介绍元
    的头像 发表于 11-28 09:41 1909次阅读

    黄仁勋分享作为工程师的心路历程

    获得者、宇航员和台积电创始人张忠谋等大型企业高管。 黄仁勋凭借“在加速人工智能计算实现的并行计算技术领域所具有的远见卓识和创新精神”而荣获该奖。黄仁勋在线上的颁奖仪式上,回顾了他路作为工程师的心路历程。 从热爱到深度
    的头像 发表于 08-02 11:36 3780次阅读

    AVR新手蓝牙模块调试的心路历程

    AVR新手蓝牙模块调试的心路历程简介遇到的问题1——网上的例程不好用遇到的问题2——烧录串口与蓝牙通信串口共用导致乱码遇到的问题3——波特率导致乱码调试成功代码简介我在最近做了
    发表于 11-15 09:51 36次下载
    <b class='flag-5'>一</b><b class='flag-5'>个</b>AVR新手蓝牙模块调试的<b class='flag-5'>心路历程</b>

    如何利用traceroute命令发现网络的负载均衡

    在网络管理和故障排除,了解数据包的路径和识别负载均衡节点是非常重要的。traceroute 命令是用于跟踪
    的头像 发表于 08-07 15:13 424次阅读
    如何利用traceroute命令发现<b class='flag-5'>网络</b><b class='flag-5'>中</b>的负载均衡