假设用IP访问百度

活动线报侠 程序猿

时间: 2023-07-22 阅读: 1 字数:1708

{}
我是前端小鱼,今天我们来操作一个比较好玩的,复现实验。...

目录

我是前端小鱼,今天我们来操作一个比较好玩的,复现实验。 大家都知道,访问网站的时候,会有一个域名解析的过程,客户端会先拿到网站的IP地址,然后通过IP地址来进行后续的HTTP通信。 那既然如此,如果我已经知道了网站的IP地址,是不是可以跳过域名解析的过程,直接拿着IP地址去请求呢?以百度为例,我们ping一下百度的域名,拿到它的IP地址。 解析的IP地址是:14.119.104.189那直接访问https://14.119.104.189,是不是也能打开百度?结果他试了一下,发现被拒绝了! 然后这位朋友就想不通了,为啥我跳过了第一步,直接用IP访问就不行呢?网站是如何做到不让直接用IP访问的? 从这个图中就可以合理的怀疑,是不是第二步中,客户端发过去的HTTP请求在使用域名和直接使用IP地址的时候有所不同,让服务器“察觉”出来你是直接使用的IP地址在访问网站,跳过了第一步。 大胆假设,小心论证,接下来我们就来看一下是不是这样。因为HTTPS的通信是加了密的,为了看清楚通过域名访问和通过IP访问的时候,HTTP请求内容的区别,我们使用Fildder抓包软件,这样可以看到HTTPS加密的正文内容。首先咱们通过域名来访问一下: 然后通过IP地址来访问一下: 放在一起一对比,在请求头中就只有两个地方不一样: 分别是Host字段和Cookie字段。这样一看,真相基本就明确了,问题多半出在这个Host字段。为了进一步验证,我们使用Postman来直接访问https://14.119.104.189,可以看到服务器返回了403错误! 然后,我们通过Postman修改一下Host字段,将其设置为域名www.baidu.com,再试一次: 这次能成功访问了!至此,这位朋友的问题就得到解答了:客户端在发起HTTP请求的时候,会将其要访问的服务器地址填在Host字段。当使用域名访问的时候,这个字段的值就是域名,而通过IP地址访问的时候,这个字段的内容就是对应的IP地址。而服务器正是通过请求中的Host字段,识别出了客户端是直接通过IP访问的还是通过域名访问的。最后给大家留一个思考题:当我用HTTPS直接访问https://14.119.104.189的时候,浏览器给了我这样一个提示: 这不是百度自己的SSL证书吗?为什么会有这个提示出现? ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRCAbvlmAAD0JIYrfL4938.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRCARRaUAAAeNtrv_38051.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRGAfDSzAAA96aRV7dw481.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRGAVt_LAABn4ORogZE505.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRKAXuGFAABE8yogPI0725.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRKAQi4OAAKby5X3QVA452.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nROAcMMWAACQwZLopAw263.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nROAHDYYAACwu6cTJho617.jpg) ![描述](http://cdn.u1.huluxia.com/g4/M01/BC/DA/rBAAdmS7nRSAeziHAABZGSiqnuY268.jpg)
本文章网址:https://www.sjxi.cn/detil/9bb3209d183e486490d59d94d20a1ec6

打赏作者

本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!

最新评论
当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复