计算机网络学习笔记

摘要

\quad 端口、IP、HTTP、URL、127.0.0.1...这些名词几乎每天都能听到,可是真的让我说出点什么好像还真的不太知道。对于这些每天与咱们打交道的词汇,花时间了解一下,仍是十分有必要的。html

1.名词解释

  • HTTP-(HyperText Transfer Protocol)-超文本传输协议
  • IP-(Interner Protocol)-网际协议
  • DNS-(Domain Name System)-网域名称系统
  • URL-(Uniform Resource Locator)-统一资源定位符
  • HTML-(HyperText Markup language)-超文本标记语言

2.IP与端口:

2.1 IP协议与约定了两件事情

  1. 如何定位一台设备
  2. 如何封装数据报文,以跟其余设备交流

\quad 可以使用 www.ip138.com 查看本身的ip地址。
git

2.2 IP分为内网和外网

如何获取外网IP?

\quad 这个只能去找运营商买,而后路由器连上电信的服务器,那么路由器就会有一个[外网IP]。可是注意,这个IP不是固定的,若是你重启路由器,就可能会获得一个新的IP,想要固定的IP地址,仍是得花钱。浏览器

如何获取内网IP?
\quad 这个就很简单了,路由器连上服务器以后,会在家里建立一个内网,内网中的设备使用内网IP,IP格式通常都是192.168.xxx.xxx 好比192.168.1.1。而后路由器会给每个内网中的设备分配一个不一样的内网IP。例如:
\quad 这个192.168.43.230就是咱们在内网中的地址,192.168.43.170就是路由器的地址。
bash

几个特殊的IP
服务器

  1. 127.0.0.1 -表示本身
  2. localhost -经过host制定为本身
  3. 0.0.0.0 -不表示任何设备
为IP指定别名步骤

使用Nodepad++打开文件C:\Windows\System32\drivers\etc
修改其中的内容就好: 网络

路由器的功能

  1. 如今的路由器有两个IP,一个内网IP,觉得外网IP。
  2. 内网中的设备能够相互访问,可是不能直接访问外网。
  3. 内网设备想要访问外网,就必须经过路由器。
  4. 外网中的设备能够相互访问,可是不能访问你的外网。
  5. 外网设备想要把内容推送到内网,也必须经过路由器。
  6. 内外网联系的惟一联通点就是路由器,因此路由器又称为网关。
  7. 若是家里有两个路由器,那么路由器之间也是隔绝的关系。

2.3 端口

一台机器能够提供不一样的端口服务负载均衡

  1. 要提供HTTP服务最好使用80端口。
  2. 要提供HTTPS服务最好使用443端口。
  3. 要使用FIP服务最好使用21端口。
  4. 一共有65535个端口。
端口使用规则
  1. 0到1023号端口是留给系统用的,你只有拥有了管理员权限后,才能使用这1024个端口。
  2. 其余端口能够给普通用户使用。
  3. http-server默认使用8080端口。
  4. 若是端口被占用,那么只能换一个端口。

使用hs -c-1 -p 1234命令在本地启动一个端口,可使用该端口进入页面。
如图所示:
curl


\quad这个123.html是我桌面上新建的html文件。这时候我从新开一个git bash,再使用前面的命令,就能看到端口被占用的报错:
编码

总而言之,对于端口和IP记住一句话: 端口和IP缺一不可。

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

3.1 域名

域名就是对IP的别称,查看百度对应的IP:url

$ ping baidu.com
正在 Ping baidu.com [220.181.38.148] 具备 32 字节的数据:
复制代码

这个IP极可能不同,缘由在于:

  1. 一个域名能够对应不一样的IP,这个叫负载均衡,防止一台机器扛不住。
  2. 一个IP能够对应不一样的域名,这个叫共享主机
  • 域名和IP是如何对应起来的呢?

\quad 首先当咱们在浏览器中输入baidu.com而且按下回车的时候,浏览器会向(电信/联通)提供的DNS服务器询问baidu.com对应什么IP,(电信/联通)会回答一个IP,而后浏览器才会向对应的(80/443)端口发送请求,请求的内容是是查看baidu.com的首页。如图所示:

\quad 也能够手动设置DNS地址,(win10)步骤:打开网络和Internet选项->以太网->更改适配器选项->选中本身经常使用的网络鼠标右键属性->Internet协议版本4(TCP/Ipv4)

  • 那么为何是80/443端口呢?
    服务器默认用80端口提供http服务,用443提供https服务。

  • www.xxxxx.com与xxxxx.com是同一个域名嘛?
    他们之间的关系是这样的:

  1. com是顶级域名。(com是company的缩写)
  2. xxxxx.com是二级域名。(俗称一级域名)
  3. www.xxxxx.com是三级域名。(俗称二级域名)
  4. 他们之间是父子关系,因此xxxxx.com与www.xxxxx.com颇有可能不是一家公司。

3.2 路径、查询参数、锚点

弄清楚这样几个问题:

  • 同一台服务器上如何请求不一样的页面?
    使用不一样的路径:
    https://developer.mozilla.org/zh-CN/docs/Web/CSShttps://developer.mozilla.org/zh-CN/docs/Web/HTML
  • 同一个页面如何显示不一样的内容?
    查询参数能够作到:
    https://www.baidu.com/s?wd=maohttps://www.baidu.com/s?wd=gou
  • 同一个内容如何定位到不一样的位置?
    锚点能够作到:
    https://developer.mozilla.org/zh-CN/docs/Web/CSS#参考书https://developer.mozilla.org/zh-CN/docs/Web/CSS#教程
    注意:
  1. 锚点看起来有中文但实际不支持中文,过程当中会被编码成其余字符。
  2. 因为锚点是不会传给服务器的,因此锚点是没法在Network面板看到的。
  • 最终咱们能够得出结论:
    URL=协议+域名或者IP+端口号+路径+查询字符串+锚点
    端口号默认80/443被省略了。

3.curl命令

  • 使用curl命令发送http请求
    例如:

curl https://www.baidu.com/命令发起http请求:


curl -v https://www.baidu.com/命令显示细节:

\quad从响应的内容中能够看出,这个过程是先根据url,请求DNS获得对应的IP,而后进行TCP链接,链接成功再发起HTTP请求。相应结束后关闭TCP链接,实现真正的结束。

4.其余

1.在git bash中使用ipconfig命令出现中文乱码的状况,如何解决:

相关文章
相关标签/搜索