HTTP:URL

134 阅读5分钟

URL 统一资源定位符

协议 + 域名或IP + 端口号 + 路径 + 查询字符串 + 锚点;

image.png

1 IP

1.1 Internet Portocal

1、如何定位一台设备;

2、如何封装数据报文,以跟其他设备交流;

3、外网IP:IP138.com 或 命令行输入 ipconfig。路由器没有固定的外网IP,重启后可能会改变;

4、内网IP:路由器会在家里创建一个内网IP,内网中的设备被分配一个不同的内网IP,一般来说这个IP的格式都是192.168.xxx.xxx;

5、内网和外网就像两个隔绝的空间,无法互通,唯一的联通点就是路由器,所以路由器有时候也被叫做“网关”;

6、特殊IP:127.0.0.1 表示自己;localhost通过host文件指定一个字符串为自己; 0.0.0.0 不表示任何设备;

C:\Windows\System32\drivers\etc\host 文件,以管理员身份运行一个记事本,将这个文件在记事本中打开,host文件可以让任意的字符串变成对应的ID,如:127.0.0.1 shenjingwa ,保存文件号,在浏览器地址栏输入shenjingwa 与输入127.0.0.1 效果是一样的;

2 端口 port

2.1 一台机器可以提供不同服务

1、要提供HTTP服务最好使用80端口;

2、要提供HTTPS服务最好使用443端口;

3、要提供FTP服务最好使用21端口;

4、一共有65535个端口;

5、查询端口:维基百科 端口

2.2 端口使用规则

http-server -c-1 -p 端口号:就可在该端口号上启动一个服务;IP提供地址,端口提供服务,如百度的设备提供的搜索服务,阿里的设备提供支付服务;IP端口缺一不可;

1、0到1023(2的10次方减一)号端口是留给系统使用的;

2、只有拥有了管理员权限后,才能使用这1024个端口;

3、其它端口留给普通用户使用;

4、比如http-server默认使用8080端口;

5、一个端口如果被占用,你就只能换一个端口;

3 域名

1、域名就是对IP的别称,ping baidu.com ,可以查看域名百度对应的IP; nslookup baidu.com 也可以查对应域名的IP ;

2、一个域名可以对应不同IP,这个叫做均衡负载,防止一台机器扛不住;

3、一个IP可以对应不同的域名,这个叫做共享主机,穷开发者会这么做;

4、域名和IP是通过 DNS 对应起来的;

5、www.xiedaimala.com 和 xiedaimala.com 不是同一个域名, .com 是顶级域名,xiedaimala.com 是二级域名(俗称一级域名), www.xiedaimala.com 是三级域名(俗称二级域名),二级域名和三级域名是父子关系,www.xiedaimala.com 和 xiedaimala.com 可以是同一家公司,也可以不是,www 是多余的;

4 DNS

4.1 作用

DNS(Domain Name System,域名系统):它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

4.2 域名解析

举一个例子,zh.wikipedia.org 作为一个域名就和IP地址198.35.26.96 相对应。DNS就像是一个自动的电话号码簿,我们可以直接拨打198.35.26.96 的名字zh.wikipedia.org 来代替电话号码(IP地址)。DNS在我们直接调用网站的名字以后就会将像zh.wikipedia.org 一样便于人类使用的名字转化成像198.35.26.96 一样便于机器识别的IP地址。

DNS查询有两种方式:递归迭代。DNS客户端设置使用的DNS服务器一般都是递归服务器,它负责全权处理客户端的DNS查询请求,直到返回最终结果。而DNS服务器之间一般采用迭代查询方式。

以查询 zh.wikipedia.org 为例:

客户端发送查询报文"query zh.wikipedia.org"至DNS服务器,DNS服务器首先检查自身缓存,如果存在记录则直接返回结果。 如果记录老化或不存在,则: DNS服务器向根域名服务器发送查询报文"query zh.wikipedia.org",根域名服务器返回顶级域 .org 的顶级域名服务器地址。 DNS服务器向 .org 域的顶级域名服务器发送查询报文"query zh.wikipedia.org",得到二级域 .wikipedia.org 的权威域名服务器地址。 DNS服务器向 .wikipedia.org 域的权威域名服务器发送查询报文"query zh.wikipedia.org",得到主机 zh 的A记录,存入自身缓存并返回给客户端。

4 访问网站的过程

1、输入网址如 baidu.com 后,浏览器会向电信/联通提供的DNS服务器询问该网址对应什么IP;

2、电信/联通会回答一个IP;

3、浏览器向对应IP的 80/443 端口发送请求;

4、请求内容是查看 baidu.com 的首页;

5 页面

1、在同一个服务器上,通过不同的路径可以访问不同的页面;

2、同一个页面,不同的内容,通过 查询参数 实现;

3、同一个内容,不同的位置;锚点可以做到,锚点可以实现文档内部的定位;锚点定位的是页面的某个内容,锚点只跟浏览器有关,没有必要发送给服务器,所以#后面的内容会被浏览器忽略掉,不能发到服务器;

4、锚点看起来有中文,实际不支持中文,会被转变成数字和符号,锚点是无法在network 面板看到的,因为锚点不会传给服务器;

6 crul 命令

1、用 curl 发送HTTP请求:

curl -v http://baidu.com

2、URL 会被 curl 工具重写,先请求DNS获得IP;

3、先进行TCP连接,TCP连接成功后,开始发送HTTP请求;

4、大于号后面的是请求内容;

5、小于号后面的是响应内容;

6、响应结束后,关闭TCP连接;

7、真正结束。