网络基础相关

目录

OSI七层架构及对应协议(从上往下)

IP地址相关

IPv4

IPv6

查询IP地址

常见的IP地址

检查网络连接情况

端口相关

端口的概念

常见的端口号

TCP协议和UDP协议

TCP协议

面向连接

三次握手

四次挥手

可靠传输

应答机制

超时重传

错误校验

流量校验和堵塞管理

UDP协议

TCP协议和UDP协议的区别

HTTP协议

HTTP协议的概念

浏览器和web服务器的通信过程(速通版)

URL

URL格式

抓包(丐版)

请求信息(GET和POST)

响应信息

常见的 HTTP 头部信息

常见状态码


OSI七层架构及对应协议(从上往下)

应用层:http、https、FTP、DNS等

表示层:Telnet等

会话层:SSL、DNS等

传输层:TCP/UDP等

网络层:IP、ARP等

数据链路层:Ethernet、PPP等

物理层:IEEE 802.x等

IP地址相关

IP地址是标识在互联网中设备信息的地址,两台设备想要进行通信需要知道对方的IP地址才能传输数据。IP地址分为两种:

IPv4

IPv4地址是目前应用最广泛的一种,格式是以点号分隔的十进制,常见的私网IP分为3类:A类(10.0.0.0~10.255.255.255)、B类(172.16.0.0~172.16.255.255)、C类(192.168.0.0~192.168.255.255)

IPv6

IPv6地址是一种新的地址,目前并未广泛普及,格式是以冒号分隔的十六进制。

查询IP地址

windows系统下查询设备ip地址相关信息可以使用快捷键win+R键打开运行窗口,随后输入cmd打开命令行终端,在命令行终端里输入

ipconfig

即可查看

Linux中的CentOS系统下查询网络相关信息可以在终端里输入

ifconfig

即可查看

如果提示没有该命令,可以使用如下命令进行下载相关工具包

yum -y install net-tools

常见的IP地址

127.0.0.1(localhost):本机ip(域名)地址

xxx.xxx.x.1:一般是路由器地址,即常见的网关

xxx.xxx.x.255:当前ip地址段的广播地址,通过此ip和某个端口,可以向此ip地址段的所有开放了该端口的设备发送信息

检查网络连接情况

一般使用 ping 命令进行检查,首先ping一下公网的某个服务器

ping www.baidu.com

测试路由器网络连接是否正常,如果能ping通则ping一下网关地址

ping 你的路由器地址

测试本机和路由器之间的连接有没有问题,没问题最后ping一下主机地址

ping 127.0.0.1 或 ping localhost

测试网卡是否正常工作

端口相关

端口的概念

端口是计算机之间传输数据的通道,计算机之间的数据在传输的时候就像我们走在街道上,端口号就是我们的目的地,相当于街道上的门牌号。每一个端口都有对应的端口号,计算机中的端口号有65536个,也就是2的16次方。

常见的端口号

21:FTP服务

22:SSH服务

23:Telnet远程连接服务

25:SMTP 简单邮件传输协议

53:DNS 域名解析服务器

80:HTTP 服务

443:HTTPS 服务

1080:socket 套接字

1433:SQL server 数据库

1521:Oracle 数据库

3306:Mysql 数据库

6379:Redis 缓存

27017:MongoDB 非关系型数据库

TCP协议和UDP协议

TCP协议

TCP(Transmission Control Protocol)协议是一种稳定的、可靠的、基于字节流的传输层网络协议,它的特点是面向连接和可靠传输。一般用于文件传输,浏览器上网等场景

面向连接

TCP协议必须先建立连接才能传输数据,数据传输完成后必须断开连接,建立连接时会建立三次握手,断开连接时会经历四次挥手。

三次握手

第一次握手:由客户端向服务端发送 连接请求

第二次握手:由服务端向客户端发送 客户端的连接请求应答 和 对客户端的连接请求 。

第三次握手:由客户端向服务端发送 服务端的连接请求应答

四次挥手

第一次挥手:由客户端向服务端发送 断开请求

第二次挥手:由服务端向客户端发送 客户端的断开请求应答。此时客户端已经没有数据要发送了,但服务端可能还有数据要发送或没接受完。

第三次挥手:由服务端向客户端发送 断开请求

第四次挥手:由客户端向服务端发送 服务端的断开请求应答。此时,客户端等待一段时间后依然没有收到回复,则证明服务端已正常关闭,则客户端也关闭连接。因为如果服务端没有收到第四次挥手时的应答,则会重复发送一次断开请求,如果此时客户端已经关闭连接,则会导致连接错乱,无法正常关闭,所以客户端发送完应答信息之后会等待一段时间以确保对方收到应答信息,此次连接能够正确关闭。

可靠传输

TCP协议拥有以下机制来保证可靠传输:

应答机制
超时重传
错误校验
流量控制(等待接受方接受数据)和堵塞管理

UDP协议

UDP(User Datagram Protocol)协议是一种面向报文的,无需建立连接的传输层网络协议。特点是可以支持一对一、一对多、多对多等通信方式,特点是不可靠传输,可以使用广播地址进行通信。

TCP协议和UDP协议的区别

TCP协议面向连接,UDP协议不面向连接;

TCP协议的安全性比UDP协议高;

TCP协议的传输速度比UDP协议慢;

TCP协议占用带宽比UDP协议大;

TCP协议可靠性比UDP协议高;

TCP协议传输数据是有序的,UDP协议传输数据是无序的

TCP协议每条连接只能支持两台主机,UDP协议可以一对一、一对多甚至多对多;

HTTP协议

HTTP协议的概念

HTTP协议就是超文本传输协议,一般用于规定浏览器和web服务器通信的数据格式。HTTP协议是基于TCP协议的,所以传输数据前要先建立连接

浏览器和web服务器的通信过程(速通版)

1.浏览器将获取的URL发送给DNS域名解析服务器,以获取域名对应的IP地址。

2.浏览器向指定服务器的IP地址建立连接。(三次握手)

3.浏览器向web服务器发送http请求数据。

4.web服务器向资源主机获取资源。

5.资源主机返回资源给web服务器。

6.web服务器返回http响应数据给浏览器,并断开连接(四次挥手)

URL

URL(Uniform Resoure Locator)就是统一资源定位符,也就是我们常说的网址,通过URL可以找到网络中对应的数据,而URL中的参数可以对数据进行筛选。
URL格式

协议部分 +  ://  +  域名/IP地址  +  /  +  资源路径  +  /?  +  参数部分

例:https://www.baidu.com/s?tn=44004473_8_oem_dg&ie=utf-8&wd=HTTP

参数格式:参数名=参数值

参数之间用  &  符号分隔

参数不是必需的

抓包(丐版)

抓包就是抓取浏览器和web服务器通信的过程中产生的所有数据包,使用浏览器自带的开发者工具即可抓包。

在浏览器地址栏中输入URL(https://www.baidu.com/),随后摁下F12打开开发者工具,在标题栏中选择Network选项进入网络抓取界面,回车,即可抓取浏览器与URL中域名相对应的服务器通信过程。

这里的每项记录都是请求 + 响应的一次过程。一般来说第一条是浏览器和web服务器的第一次通信,里面包含请求信息和响应信息。

请求信息(GET和POST)

请求信息由请求行+请求头+空行+请求体组成。

请求头由 请求方式 + 请求资源路径 + HTTP协议版本组成

GET请求报文参考:

---- 请求行 ----
GET / HTTP/1.1        # GET 请求方式 请求资源路径 HTTP 协议版本
---- 请求头 -----
Host: www.itcast.cn         # 服务器的主机地址和端口号 , 默认是 80
Connection: keep-alive         # 和服务端保持长连接
Upgrade-Insecure-Requests: 1         # 让浏览器升级不安全请求,使用 https 请求
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_4) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36         # 用户代理,也就是客户端的名称
Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/ap
ng,*/*;q=0.8         # 可接受的数据类型
Accept-Encoding: gzip, deflate         # 可接受的压缩格式
Cookie: pgv_pvi=1246921728;         # 登录用户的身份标识
Accept-Language: zh-CN,zh;q=0.9         #可接受的语言
---- 空行 ----

GET请求是获取服务器数据,所以没有请求体。

POST请求是向服务器提交数据,需要携带信息,所以会有请求体。(可以不带请求体,但很少见)

GET方式的资源路径必须放在URL内,POST方式的资源路径可以放URL也可以放请求行。

GET方式的参数有长度限制,POST方式的参数没有。

GET方式的参数只接受ASCII字符的数据类型,而POST方式的参数没有限制。

响应信息

响应信息由响应行 + 响应头 + 空行 + 响应体组成。

响应行也可以称作状态行,由协议版本 + 状态码 + 状态描述

响应信息参考

--- 响应行 / 状态行 ---
HTTP/1.1 200 OK         # HTTP协议版本 状态码 状态描述
--- 响应头 ---
Server: Tengine         # 服务器名称
Content-Type: text/html; charset=UTF-8         # 内容类型
Transfer-Encoding: chunked            # 发送给客户端内容不确定内容长度,发送结束的标记是 0\r\n,
Connection: keep-alive         # 和客户端保持长连接
Date: Fri, 23 Nov 2018 02:01:05 GMT         # 服务端的响应时间
--- 空行 ---
--- 响应体 ---
<!DOCTYPE html>
<html lang=“en”>
</html>
# 响应给客户端的数据
常见的 HTTP 头部信息
Host请求的目标主机域名
Referer防盗链
User-Agent客户端信息
Accpet客户端期望接受的数据类型
Accpet-Encoding客户端期望接受的压缩格式
Accpet-Language客户端可以接受的语言类型
Connection客户端与服务器的连接类型:长连接或短连接
Content-Type请求体或响应体的数据类型
Content-Length请求体或响应体的数据长度
Cache-control缓存方式
Last-Modified服务器上的数据的最后一次修改时间
Cookie标识用户身份信息
Set-cookie服务器返回给客户端的身份信息,下一次请求需要携带此cookie
Date服务器返回数据的数据
常见状态码

        100    

服务器收到了客户端的请求头部信息,让客户端继续发送数据
        200请求成功
        301        资源被转移,请求将被重定向
        302资源被转移,请求需要使用GET方式获取
        304服务器资源与客户端浏览器已缓存的资源一样,无需重新获取
        307资源被转移,可以使用和原始请求相同的请求方式重新获取
        400通用客户端错误
        401客户端没有被认证
        403请求被拒绝,客户端没有权限访问该资源
        404服务器找不到该资源
        407客户端需要先获得代理服务器认证
        500通用服务器错误
        503暂时无法连接服务器

  • 23
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值