【HTTP非全解】浅析 URL

内容提要:

  1. URL 包含哪几部分,每部分分别有什么作用
  2. DNS 的作用是什么,nslookup 命令怎么用
  3. IP 的作用是什么,ping 命令怎么用
  4. 域名是什么,分别哪几类域名

URL的组成部分

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

eg.

https://www.baidu.com/swd=hello&rsv_spt=1#5

  • 传输协议( scheme: [protocal] ):httphttpsftp
  • 域名( [//authority] Domain Name ):www.baidu.com
  • 端口( :Port ):通常省略,:80:443:8080等(http 大部分默认80, https默认443)

[//authority] = [userinfo@]host[:port]

  • 路径( Path to the file):/s
  • 查询参数([?query] Parameters ):wd=hello&rsv_spt=1或者?key1=value1&key2=value2
  • 锚点( [#fragment] Anchor ):#5

另一个常见的 URL(URI) 的例子:

https://zh.wikipedia.org/w/index.php?title=Special:随机页面#5

  • https:协议
  • zh.wikipedia.org:域名
  • /w/index.php:路径(不同的页面)
  • ?title=Special:随机页面:查询参数(相同页面,不同内容)
  • #5:锚点(相同页面,相同内容,不同位置)

其中若不写端口号,则表示使用
https 对应的默认端口号 443

localhost:8080

DNS(Domain Name System):域名系统

作用:根据域名查出IP地址

即:将域名解析为IP 地址

nslookup可查询IP(DNS)地址

直接使用可以查询到域名的 A 记录

nslookup 命令用于查询 DNS 的记录,查看域名解析是否正常,在网络故障的时候用来诊断网络问题

# nslookup + 域名
nslookup domain [dns-server]
nslookup xmasuhai.xyz

IP的作用,ping 命令用法

  • 一是定位一台设备
  • 二是封装数据报文跟其他设备交流

ping 命令是常用的网络命令,它通常用来测试与目标主机的连通性。

即:

  • 标识主机,具体地说,标识其网络接口,并且提供主机在网络中的位置,就此提供创建到达该主机的路径的能力。
  • 每个 IP 数据包的标头包含了发送主机的 IP 地址和目的主机的 IP 地址。
# ping [参数][主机名或ip地址]
ping baidu.com

域名(Domain Name)

是互联网的一项服务,主要用于域名与 IP 地址的相互转换

如果要访问一个地址(使用域名),都要先通过DNS查询域名对应的IP地址,才能进行访问

域名分类

域名分顶级域名,二级域名和三级域名

比如对于 www.baidu.com

  1. 顶级域名:com
  2. 二级域名:baidu.com
  3. 三级域名:www.baidu.com

域名的第一级是顶级域,它包括通用顶级域,例如.com、.net 和.org;

以及国家和地区顶级域,例如.us、.cn 和.tk。

完整域名的所有字符加起来不得超过 253 个 ASCII 字符的总长度。

当每一级都使用单个字符时,限制为 127 个级别:127 个字符加上 126 个点的总长度为 253。

但实际上,某些域名可能具有其他限制;也没有只有一个字符的域名后缀。


内容提要卐,后面是视频记录流水账


问:hosts 文件在哪?

答: 在 Windows 系统中,hosts 位于 C:\Windows\System32\drivers\etc\hosts

在 macOS / Linux系统中,hosts 位于 /etc/hosts

网络和 IP

李爵士的发明

WWW=URL+HTTP+HTML

HyperText Transfer Protocol协议

IP: Internet Protocol

IP(Internet Protocol)主要约定

1.如何定位一台设备
2.如何封装数据报文(用来和其他设备交流)

互联网(not WWW),至少一个独特的IP

IP分内网和外网

设备 路由器 电信DNS服务器 其他用户

获取外网IP 买 | 蹭

  • 首先,你需要租用宽带(电信或者联通)
  • 其次,你需要购买一个路由器(有时候也被叫做“网关”)
  • 当路由器连接上电信或者联通的服务器后,路由器就会获得一个外网的IP,所有通过路由器连接的设备,他们的外网IP都是一致的。
  • 注意:如果当你重启路由器之后,可能会被分配一个新的外网IP,也就是说,路由器是没有一个固定的外网IP,除非高价买,企业级需要

内网IP

  • 路由器创建内网,内网中的设备使用内网IP,格式192.168.xxx.xxx192.168.1.1
  • 路由再给每一个内网中的设备(PC、手机)分配一个不同的内网IP
  • 内网的所有设备都有一个相同的外网IP
  • 路由器会为每一个内网中的设备分配一个不同的内网IP

内网IP固定

查看IP

ping xxx.com
ipconfig

查看ip38.com

路由器的功能

  1. 路由器有两个IP,内外各一
  2. 内网中的设备可互相访问,但不可直接访问外网
  3. 内网设备通过路由器中转,访问外网
  4. 外网设备无法访问你的内网,不管直接间接
  5. 外网把内容推送到内网,必须通过路由
  6. 内外隔绝,路由是唯一联通点,即网关

几个特殊的IP

  1. 127.0.0.1表示自己
  2. localhost通过hosts指定为自己
  3. 0.0.0.0不表示任何设备,后端用

端口

一台机子可提供很多服务,每个服务一个号码,即端口号port

不同的服务

  1. 提供HTTP服务,最好使用80端口
  2. 提供HTTPS服务,最好443端口
  3. 一共有65535个端口,FTP是21端口
  4. 该用什么端口:端口对应的服务列表wiki

其他使用规则

  1. 0到1023(2的10次方减1,计1024个)号端口,留给系统使用,自己使用须取得管理权限
  2. http-server默认使用8080端口
  3. 一个端口被占用时,只能换另一个

总之,IP和端口缺一不可

域名、路径、查询参数、锚点

qq.comt.tt

域名:对IP的别称

ping baidu.com

#将得到四个回复(win),mac 需ctrl+c中断

baidu.com对应ping baidu.comqq.com对应ping qq.com

知识点

  • 一个域名可以对应不同IP,即均衡负载,分流,防止一台机子扛不住,或者恶意的D-Dos攻击,网站优化策略
  • 一个IP可对应不同域名,即穷开发者的共享主机

域名和IP,怎么对应起来?

  • 通过DNS

当你输入xiedaimala.com

Chrome开发者工具中,Network面板,xiedaimala.com点击,Headers里,请求根目录https://xiedaimala.com/

得到响应Response 一串HTML代码,请求CSS,请求图片,请求js等

过程

客户端向DNS服务器(DNS服务器有自己的IP地址)发送域名查询请求

DNS服务器告知客户机Web服务器的IP地址

  • 提供DNS的服务器的服务商:电信或联通等
  • 浏览器向提供DNS的服务器询问xiedaimala.com对应什么IP
  • 服务器回答一个IP(具体过程三次握手、四次握手,面试必问)
  • 请求内容是查看这个网址的网页

eg.xiedaimala.com的首页index.html

why 80443端口

  • 服务器默认用80提供http服务
  • 服务器默认用443提供https服务
  • 在开发者工具查看具体端口
  • 不需要写在地址栏里,写了也帮你消掉

nslookup

nslookup -qt=[type] domain [dns-server]

type可以是:

  • A 地址记录
  • AAAA 地址记录(IPv6)
  • CNAME 别名记录
  • HINFO 硬件配置记录,包括 CPU、操作系统信息

询问域名,域名ns,寻找lookup

nslookup baidu.com

默认自动设置
电信DNS
114.114.114.114
备用
114.114.115.115

题外话

www

  • A:www.xiedaimala.com和B:xiedaimala.com不是同一个域名
  • com(没有点)是顶级域名
  • xiedaimala.com是二级域名(俗称一级域名)
  • www.xiedaimala.com是三级域名(俗称二级)
  • 祖父子关系
  • github.io把子域名xxx.github.io免费给你使用
  • A和B可以不是同一家公司
  • www是多余的,历史残留,脱x子放*

如何请求不同的页面

用路径
工具

使用Chrome开发者工具Network面板查看区别

同一个页面,不同内容

用查询参数:https://xxx.com/s?wd=hello

同一个内容(页面),不同位置

用锚点

锚点就是文档内部的定位

注意:

  • 锚点看起来有中文,实际不支持中文
  • #参考书会变成#%E5%8F%82%E8%80%83%E4%B9%A6
  • 锚点不会传给服务器,所以是无法在Network面板里看到的

URL

统一资源定位符(Uniform Resource Locator),简称URL,是因特网上标准的资源的地址(Address)

Every HTTP URL conforms to the syntax of a generic URI.

每个有效的 URI 都指向一个独特的资源。这个资源可以是一个 HTML 页面,一个 CSS 文档,一幅图像、视频、邮件、PDF等

The URI generic syntax consists of a hierarchical sequence of five components

  • URI = scheme:[//authority]path[?query][#fragment]
  • -authority = [userinfo@]host[:port]

wiki:URL

组成

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

eg.

https://www.baidu.com/swd=hello&rsv_spt=1#5

**www.baidu.com**是域名。 表明正在请求哪个 Web 服务器。或者,可以直接使用 IP address, 但因为不便,所以不常使用。

就算没写,也应知道端口,HTTPS默认端口443,通常省略

/path/to/index.html 是网络服务器上资源的路径,路径表示访问哪个网页

ftp://是文件传输协议,不属于www,本地或局域网

wd=hello&rsv_spt=1?key1=value1&key2=value2 是提供给网络服务器的额外参数。 这些参数是用 & 符号分隔的键/值对列表。

wd=hello&rsv_spt=1查询字符串表示页面的展示内容,第几部分,第几章,第几页,或者查询关键词

在返回资源之前,Web服务器可以使用这些参数来执行额外的操作。

#Anchor#SomewhereInTheDocument是资源本身的另一部分的锚点。

锚点表示资源中的一种“书签”,给浏览器显示位于该“加书签”位置的内容的方向。
例如,
在 HTML 文档上,浏览器将滚动到定义锚点的位置

在视频或音频文档上,浏览器将尝试转到锚代表的时间

#后面的部分(也称为片段标识符)[fragment]从来没有发送到请求的服务器

锚点会被浏览器‘吃掉’,锚点只和浏览器有关,没必要发送给服务器

服务器无法接收#之后的内容,参数,不想被扣年终bonus的记住

HTTP协议

基于TCPIP两个协议:也称TCP/IP

curl 命令

curl可以发HTTP请求

  • curl https://xiedaimala.com
  • curl -v http://baidu.com
  • curl -v -- http://baidu.com

-v:verbose 啰嗦模式

理解以下概念

  • url会被curl工具重写,先请求DNS获得IP
  • 先进行TCP连接,TCP连接成功后,开始发送HTTP请求
  • 请求内容看一眼
  • 相应内容看一眼
  • 响应结束后,关闭TCP连接(看不出来)
  • 真正结束

规定请求的格式是什么,响应式格式是什么


·未完待续·


参考文章

相关文章



最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • 1. url的组成 先举个具体的url的例子: url的组成包括以下几点: 协议 https:// 域名或IP加上...
    刘泽佳阅读 714评论 0 0
  • 文章首发于个人blog欢迎指正补充,可联系lionsom_lin@qq.com原文地址:《网络是怎样连接的》阅读整...
    lionsom_lin阅读 14,109评论 6 31
  • 什么是HTTP?(HyperText Transfer Protocol:超文本传输协议) 互联网内的所有计算机通...
    joker731阅读 280评论 0 0
  • 1.WWW (World Wide Web) 的由来 1.1诞生:1990年,Tim Berners-Lee(蒂姆...
    黄同学2019阅读 464评论 0 0
  • 关键词,绘画学习 #学习# 这一个月每天的主要任务是复盘小新老师的绘画课程。手绘课程完成复习一遍,对水彩手绘有了更...
    源源哒阅读 163评论 0 0