常见的网络协议

1.网络模型

OSI七层模型:应用层 会话层 接收层 传输层 网络层 数据链路层 物理层

2.TCP/IP四层模型

应用层:

HTTP:超文本传输协议(html,图片,视频,音频)

FTP:文件传输协议

SMTP:简单邮件传输协议

POP3:邮局协议,接收邮件服务

DNS:域名解析协议 ,将IP解析为网站地址(www.baidu。com--------110.242.68.4)

传输层:

TCP:传输控制协议

UDP:用户报文协议

网络层:

IP协议:ipv4 ipv6

ARP协议:地址解析协议,绑定mac和IP地址协议

网络接口层:

以太网 物理网络设备等

二:传输层协议

传输控制协议,是面向连接的,全双工的,可靠的(数据传输的正确性),基于字节的通信协议

1.TCP打包和解包的过程

常见的网络协议_第1张图片

http协议报文通过报文段分别打包解包,完成整个报文的传输

2.TCP协议的报文结构

常见的网络协议_第2张图片

3.TCP协议的三次握手

全双工,面像连接,可靠的传输方式

常见的网络协议_第3张图片

4、四次挥手

常见的网络协议_第4张图片

5、UDP协议

也适用于数据传输控制的协议,对数据的可靠性、安全没有保证,不需要连接就可以发送。

UDP和TCP的区别:

tcp是面向连接的,udp是面向无连接

tcp的报文的结构相对要比udp更复杂

tcp是基于字节流(0、1),udp是基于数据报

tcp会保证数据的正确性、udp不能,会存在丢包的现象

tcp传输数据顺序是正确,udp不会

6、因特网的特点

冗余的网络,报文段知道拼接完成后才完成传输

7、端口port

端口号可以是0~65535,其中1024之前的不能随便用,自定义端口的话选择1024之后的。

端口的作用:唯一识别电脑上一个应用的东西

常见的网络协议_第5张图片

三、网络层协议-IP地址

是一种统一的地址格式,主要的作用是屏蔽掉mac物理地址的差异化。

IP危机,ip地址不够用的问题。

ipv4:4个字节、32位:11111111 11111111 11111111 11111111

A类地址:第一个字节作为网络号(第一位上必须是0),后面三个作为主机号

                 网络号:0 0000001 ~0 1111111 :1~126个网络

                主机号:00000000 00000000 00000001 ~ 111111111 11111111 11111111:

                 1.0.0.0 ~126.255.255.255 (2^24-2是每一个A类的网络中能够安装最大主机数量)

                10.9.36.101:是A类地址中的局域网地址

B类地址:前两个字节作为网络号(前两位必须是10,14位),后两个字节作为主机号(16位)

                  网络号:10000000.00000000 ~ 10111111.11111111 : 128.0 ~ 191.255

                127.0.0.1:比较特殊的一个,作为本地回环地址来使用,localhost是一个意思

                主机号:00000000.00000000~11111111.11111111:2^16-2

C类地址:前三个字节作为网络号(前三位必须110,21位),最后一个字节作为主机号(8位)

                网络号:11000000.00000000.00000000~11011111.11111111.111111:        

                192.0.0~223.255.255

                主机号:00000000~11111111:0~255:2^8-2=254个

                192.168.12.22:C类地址中的局域网地址

ipv6:16个字节,每个字节8位,共128位作为地址

四、应用层协议****

1、http协议简介

http://www.baidu.com

http是超文本传输协议,用于与服务器间传输html文件、图片、视频等文件类型的协议。

http是基于万维网:www : world wide web

http协议基于浏览器的一种BS架构的系统。

能够运行bs架构系统的服务成为web服务器:

apache(php、python等)

tomcat(java)

iis-internet information service

http协议的端口一般采用80,可以修改配置文件为其他(建议1024之后)

https协议(http基础+ssl协议+CA),是一种更安全的超文本传输协议,端口默认为443

2、http请求的报文结构

第一步:通过浏览器来抓包

chrome,右键鼠标,检查,网络(network)

常见的网络协议_第6张图片

第二步:操作页面业务功能,进行抓包

输入注册数据,点击注册,查看抓到的请求,可以通过payload(输入数据)及response(服务器返回数据)

常见的网络协议_第7张图片

第三步:分析一个请求包括的内容有什么(HTTP报文)

Request URL: http://localhost:8088/verydows/user/register.html?step=submit

Request Method:post

Request Header:包括很多字段,是对当前请求的一个补充说明

Request data:payload,请求数据

  1. username: bk2205_001
  2. email: [email protected]
  3. password: 123456
  4. repassword: 123456
  5. agree: on

第四步:通过fiddler抓取请求raw报文

请求行:请求方式、请求url和请求协议及版本

请求头部:包括很多字段

      Content-Type:指定请求数据的类型

      Content-Length:指定请求数据的大小(Byte)

空行:区分请求头和请求数据的

请求数据:表单数据结构、json数据结构、xml格式等

                                                    findler抓包内容

-------------------------------------------------------------------------------------------------------------------------------

POST http://localhost:8088/verydows/user/register.html?step=submit HTTP/1.1 Host: localhost:8088 Connection: keep-alive Content-Length: 89 Cache-Control: max-age=0 sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="99", "Google Chrome";v="99" sec-ch-ua-mobile: ?0 sec-ch-ua-platform: "Windows" Upgrade-Insecure-Requests: 1 Origin: http://localhost:8088 Content-Type: application/x-www-form-urlencoded User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Sec-Fetch-Site: same-origin Sec-Fetch-Mode: navigate Sec-Fetch-User: ?1 Sec-Fetch-Dest: document Referer: http://localhost:8088/verydows/user/register.html Accept-Encoding: gzip, deflate, br Accept-Language: zh-CN,zh;q=0.9 Cookie: jenkins-timestamper-offset=-28800000; deviceid=1636371560217; xinhu_ca_adminuser=admin; xinhu_ca_rempass=0; xinhu_mo_adminid=tpp0gp0ct0tit0ss0cm0sm0mf0tpt0ttp0qf0gc05; 6971_2132_saltkey=fPpD5Ggm; 6971_2132_lastvisit=1646305581; 6971_2132_visitedfid=2; UVID=c97b016df476f9022ee7e53855b7b3c4; VDSSKEY=5isi3tjqvjcbiuioned00qupuh username=student112&email=student112%40163.com&password=123456&repassword=123456&agree

---------------------------------------------------------------------------------------------------------------------------------

3、get和post请求的区别

get请求的参数一般拼接在url后面的,存在不安全的因素;post请求的参数请求数据,可以进行加密处理,而且不能通过地址栏看到这个数据

url地址栏是有长度限制的,所以请求的参数长度也有限制;post不受长度的限制。

get是向服务器要数据,不影响服务器的资源;post请求也是向服务器要资源,并且可以改变服务器上的资源

发送get请求一次即可完成;post请求需要两次发送,先获取一次请求100(继续),再继续去发得到200(发送成功)

4.请求方式

get:向服务器端申请数据,可以获得响应实体(html格式,josn,xml格式)

head:类似get,但是只获取响应头部,不获取实体

post:可以获取实体,对资源进行增删改

put:修改服务器资源

delete:删除服务器资源

如果为http协议:只用get,post

如果是restful接口,可以使用get,post,put,delete

响应报文结构

响应状态行:

协议,版本号,响应状态码,响应状态信息

响应头部:

Content-Type:响应正文的格式(json,html,xml)

Content-Length:响应正文的长度

Date:日期。服务器返回响应报文的日期

Last_Modified:服务器上资源最后修改时间

Expires:从服务器申请到本地资源,设置过期时间

空行

响应正文:

get/post获得的实体

响应状态码

200:请求成功

301   302:  分别是永久重新定向和临时重新定向

304:文件内容未发生改变

401:未授权状态

403:禁用状态

404:资源不存在(路径,资源名写错)

错误状态码和响应状态码的区别

1.响应状态码是对请求状态的反馈,不能够判断业务逻辑的问题

2.错误状态码是定义系统业务逻辑状态的功能

3.响应状态码出现在响应报文的状态行,错误码出现在响应正文中

4.错误码可以自己定义,主要反馈业务逻辑的错误

接口测试就是对请求报文的打包,通过工具发送,获取响应报文,并对响应报文中的数据进行判断是否符合预期的过程

你可能感兴趣的:(网络协议,网络,http)