技术标签: 网络
当我们把项目部署到自己的服务器上以后,一般可以通过两种形式访问项目
那么这两种访问项目的方式的区别是什么呢?哪一种更好一些?IP,域名,端口号之间有什么联系呢?
域名访问可以不填写端口号,但是仅限于80端口,80端口是为HTTP(HyperText Transport Protocol)即超文本传输协议开放的,此为上网冲浪使用次数最多的协议,主要用于WWW(World Wide Web)即万维网传输信息的协议。
可以通过HTTP地址(即常说的“网址”)加“: 80”来访问网站,因为浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“: 80”了。
其他服务,域名同样也需要加端口号才能访问。
IP,(英语:Internet Protocol Address,又译为网际协议地址),缩写为IP地址(英语:IP Address),是分配给网络上使用IP协议的设备的数字标签。常见的IP地址分为IPv4与IPv6两大类。目前我们使用的都是IPv4的地址,IPv4地址由32位二进制数组成,常以XXX.XXX.XXX.XXX形式表现。(以上参考于维基百科)
通俗点说就是IP地址是用于标识出网络上的每一台主机的编号。有这个编号,网络上的其他主机才能在互联网浩若繁星的主机中定位到唯一的一台主机。
域名,(英语:domain name),是由一串用“点”分隔的字符组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。域名按域名系统(DNS)的规则流程组成。在DNS中注册的任何名称都是域名。域名用于各种网络环境和应用程序特定的命名和寻址目的。(以上参考于维基百科)
域名结构
我们通过域名树的方式来查看域名的结构,可以看出来,它实际上是一个倒过来的树,最上面的是根,没有对应的名字。因为根没有名字,所以根下面的一级节点就是顶级域名,往下同理。我们以 www.baidu.com/ 为例,www 是三级域名,baidu 是二级域名,com 是顶级域名,各级域名之间通过 . 相连。域名在互联网中是唯一的。
域名和IP地址之间有区别也有联系,域名通常会和IP进行绑定,通过访问域名来访问网络上的主机的服务。IP地址通常指的是网络中的主机,而域名则通常表示一个网站,一个域名可以绑定到多个ip上,多个域名也可以绑定到一个ip上。
端口,(英语:port),主要分为物理端口和逻辑端口。我们一般说的都是逻辑端口,用于区分不同的服务。因为网络中一台主机只有一个IP,但是一个主机可以提供多个服务,端口号就用于区分一个主机上的不同服务。一个IP地址的端口通过16bit进行编号,最多可以有65536个端口,标识是从0~65535.(以上参考于维基百科)
端口号分为公认端口(0~ 1023)、注册端口(1024~ 49151)和动态或私有端口号(49152~65535)。我们自己的服务一般都绑定在注册端口上。
互联网中的域名系统 DNS 被设计成一个层次树状结构的联机分布式数据库系统,并且采取的是客户服务器的方式,将域名和IP地址相互映射联系了起来。
域名服务器的层次结构:
(来自https://blog.csdn.net/codejas/article/details/80086068)
DNS 使大多数名字都在本地进行解析,只有少量的解析需要在互联网通信,因此效率很高。采取分布式的一个好处是,即使单个计算机出了故障,也不会妨碍 DNS 系统的正常运行。
域名到 IP 地址的解析是通过许多分布在互联网上的域名服务器完成的。
解析的主要过程如下:
比如:
域名如:alibaba.com (URL地址)
IP地址为:xx.233.xxs.12 (访问)
首先,第一步浏览器会请求DNS返回域名对应的IP,浏览器还提供了DNS数据缓存服务,如果某个域名已经被解析过了,浏览器就会缓存解析的结构,下次查询时直接使用,减少一次网络请求。
拿到IP后,就需要获取端口号,如果url没有明确指出端口号,HTTP协议默认是80端口。
在实际情况中,因为用户和服务器之间存在代理服务器比如nginx,这个解析到的域名一般是代理服务器的 IP地址(或者IP地址 :80端口 ),代理服务再去转发请求到真正的业务服务器,业务服务器和IP和端口号就跟访问的域名没啥关系了。
客户端输入域名,通过DNS将域名解析成为服务器ip,找到代理服务器,因为http协议服务所占用的端口默认为80端口,所以会访问服务器的80端口,然后再通过代理服务器将请求转发到不同的服务器以及端口中.
如图:域名和端口号的对应
(来自https://blog.csdn.net/qq_43778308/article/details/109382424)
答案是必须的。
如果用IP+端口号的方式访问,会有以下后果:
首先是域名解析,然后客户端拿到域名对应的IP地址,客户端再根据IP地址去对指定服务器资源进行访问(默认80端口)。
域名解析的大致过程如下图
(来自https://blog.csdn.net/qq_43778308/article/details/109382424)
当客户端程序要通过一个主机名称来访问网络中的一台主机时,它首先要得到这个主机名称所对应的IP地址,因为IP数据报中允许放置的是目地主机的IP地址,而不是主机名称。
可以从本机的hosts文件中得到主机名称所对应的IP地址,但如果hosts文件不能解析该主机名称时,只能通过向客户机所设定DNS服务器进行查询了。(这里hosts文件是本地查询)
按照如下流程查询IP
浏览器缓存→hosts&系统缓存→路由器缓存→ISP DNS 缓存
查询方式可大致分为以下几种:
当本地域名服务器自己不能回答客户机的DNS查询时,它就需要向其他DNS服务器进行查询。此时有两种方式:递归和迭代
递归查询结构图如下(图片来自https://blog.csdn.net/codejas/article/details/80086068)
迭代查询结构图如下:
(图片来自https://blog.csdn.net/codejas/article/details/80086068)
关于DNS缓存的机制,有一篇非常详细的文章What really happens when you navigate to a URL。
简单来说,一条域名的DNS记录会在本地有两种缓存:浏览器缓存和操作系统(OS)缓存。在浏览器中访问的时候,会优先访问浏览器缓存,
如果未命中则访问OS缓存,最后再访问DNS服务器(一般是ISP提供),然后DNS服务器会递归式的查找域名记录,然后返回。
DNS记录会有一个ttl值(time to live),单位是秒,意思是这个记录最大有效期是多少。经过实验,OS缓存会参考ttl值,但是不完全等于ttl值,
而浏览器DNS缓存的时间跟ttl值无关,每种浏览器都使用一个固定值。
Windows访问DNS后会把记录保存一段短暂的时间
可通过ipconfig /displaydns 查看windows的DNS缓存、通过ipconfig /flushdns来清除。
而在修改hosts文件后,所有OS中DNS缓存会被清空,而浏览器缓存则不发生变化
优点:
缺点:
实际的情况:
在实际的项目部署,我们一般会将部分服务器使用DNS解析,利用域名解析作为第一级负载均衡.再在服务器中使用NGINX负载均衡作为第二级负载均衡。
域名购买(去腾讯云或者阿里云都可以)
购买域名,还会要你填写你自己的个人信息模板来进行审核
购买成功后,自行进入控制台进行域名解析
域名解析,A记录表示将该域名映射到一个IP地址上面
(一个域名可以对应多个IP地址,同时一个IP地址也可以有多个域名)
我这里将域名映射到了我的两个服务器IP上面
使用nslookup 命令查看某域名对应的IP地址
nslookup 域名
一个域名对应了多个IP地址
Windows电脑快速清除本地DNS缓存(win+r 然后输入cmd打开终端)
有时候你在阿里云或者腾讯云控制台虽然改了域名解析,但是还是会访问以前的那个IP地址,因为你电脑本地有DNS的缓存,电脑访问某个网络服务的时候,先会去本地电脑查询,如果有域名解析就直接访问了,没有才会去DNS服务器查询
ipconfig/flushdns
我域名刚买,所以还无法访问,他需要备案,待备案之后我再展示结果
注意:我加了端口号9000,除80端口以外,其他服务还是需要添加端口号
(写博客主要是对自己学习的归纳整理,资料大部分来源于书籍、网络资料和自己的实践,整理不易,但是难免有不足之处,如有错误,请大家评论区批评指正。同时感谢广大博主和广大作者辛苦整理出来的资源和分享的知识。)
文章浏览阅读102次。说明到3就没有了,直接进行union查询 (此时将1改为-1)本题考察sql注入联合查询union select。继续到1‘ order by 4--+首先我们试着注入1‘ and 1=1’继续到1‘ order by 3--+回显异常,说明存在注入。_ctfshowweb171
文章浏览阅读6.7k次,点赞18次,收藏214次。 答:(美国电器和电子工程师协会)IEEE提出的软件工程标准术语,使用人工和自动手段来运行或测试某个系统的过程,目的在于检验它是否满足规定的需求或是弄清预期结果与实 际结果之间的差别。简单定义:找出软件中的BUG答:在软件开发过程中容易出现缺乏有效沟通,软件复杂,编程错误,需求不断变更,时间的压力,缺乏文档的代码,软件开发工具和人员的自大等原因引发的错误,通过测试能够找出其中的错误,解决错误,从而提高软件的质量答:计划工作内容需求分析工作内容 对开发的软件进行详细的定义,由需求分析人员和用户共同讨_软件测试基础知识面试题
文章浏览阅读490次。阅读目录1 消息确认 1 生产者端消息确认(tx机制和Confirm模式) 2 消费者端消息确认(自动确认和显示确认) 2 消息持久化/优先级 1 消息持久化(Persistent) 2 消息优先级(Priority) 3 小结 回到顶部1 消息确认 在一些场合,如转账、付费时每一条消息都必须保证成功的被处理。AMQP是金融级的消息队列协议,有很高的可靠性,这里介绍在使用RabbitMQ时怎么保证消息被成功处理的。消息确认可以分为两种:一种..._c# rabbitmq 消息为持久化
文章浏览阅读4.7k次,点赞11次,收藏6次。项目安装swiper轮播后,启动报错:_*swiper in
文章浏览阅读301次。转载自 这里编译可执行MakefileVERSION =1.00CC =gccDEBUG =-DUSE_DEBUGCFLAGS =-WallSOURCES =$(wildcard ./source/*.c)INCLUDES =-I./includeLIB_NAMES =-lfun_a -lfun_soLIB_PATH =-L./libOBJ =$(patsubst %.c, %.o, $(SOURCES))TARGET =app#links$(TAR_-duse_debug
文章浏览阅读329次。文件预览、扇区编辑、加密分区恢复、Ext4分区恢复、RAID恢复等高级功能应有尽有,满足个人用户及企业用户对数据恢复的各种需求。安全快速地恢复硬盘、移动硬盘、U盘、内存卡、RAID、虚拟磁盘上因误删除、格式化、分区损坏、分区丢失、病毒破坏、系统崩溃及其他未知原因丢失的数据。不管数据是什么原因丢失的,只要没有被覆盖,还有残留的文件信息,就可以正常查找到并恢复。双击文档、图片、视频、音频、文本、PDF等可以查看文件内容,以便准确预判恢复效果。(访问密码: 2024)_diskgenius下载 csdn
文章浏览阅读1.2k次。Mybatis generator 1.4.x 入门教程一、前言 最近因为公司开了新的项目,所以在构建骨架的时候发现mybatis最新的版本已经更新到了1.4.0了,尝试了一下,比起之前的mybatis版本,有了更好的优化,用上了lamada表达式,还支持动态sql查询,所以在这里安利一波,因为之前我用的Laravel ORM,所以比较习惯使用这种lamada表达式来查询,可能之前用习惯了以前的查询方式的二、官方文档地址官方文档地址三、集成 mybatis Generator 1.4._sqlprovideradapter
文章浏览阅读1.6w次,点赞2次,收藏6次。CORS 全称 Cross-Origin Resource Sharing,是一种允许当前域(domain)的资源(比如 html/js/web service)被其他域(domain)的脚本请求访问的机制,通常由于同域安全策略(the same-origin security policy)浏览器会禁止这种跨域请求。_.net 跨域
文章浏览阅读1.1k次。<template> <div> <el-input placeholder="输入关键字进行过滤" v-model="filterText"></el-input> <el-tree :data="menus" :props="defaultProps" node-key="catId" ref="menuTree" @node-click="nodeclick" ._elementui tree 实现对树的搜索过滤
文章浏览阅读2.6k次。目录一Fragment的简介和生命周期: <1> Fragment的简介 <2> Fragment的生命周期二将Fragment添加到Activty中使用 <1>概述 <2>使用不兼容方法将Fragemnt添加到Activity中使用 <2.1>不兼容方法..._android fragment
文章浏览阅读7.3w次,点赞65次,收藏508次。一、聚类分析1.1 聚类分析 聚类: 把相似数据并成一组(group)的方法。‘物以类聚,人以群分’ 不需要类别标注的算法,直接从数据中学习模式 所以,聚类是一种 数据探索 的分析方法,他帮助我们在大量数据中探索和发现数据结构1.2 相似度与距离度量 定义距离来度量表示相似度: 欧式距离,曼哈顿距离,闵氏距离..._k-means聚类分析
文章浏览阅读4.3k次,点赞6次,收藏24次。中断概念:是一个过程,是CPU在执行当前程序的过程中因硬件或软件的原因插入了另一段程序运行的过程。因硬件原因引起的中断过程的出现时不可预测的,即随机的,而软中断是事先安排好的。中断源概念:可以引起中断的信号源。中断优先级ARM处理器中有7种类型的异常,按优先级从高到低的排列如下:复位异常(Reset)、数据异常(Data Abort)、快速中断异常(FIQ)、外部中断异常(IRQ)、预取..._arm undefine exception