搜索
查看
编辑修改
首页
UNITY
NODEJS
PYTHON
AI
GIT
PHP
GO
CEF3
JAVA
HTML
CSS
搜索
我家小花儿
这个屌丝很懒,什么也没留下!
关注作者
热门标签
jquery
HTML
CSS
PHP
ASP
PYTHON
GO
AI
C
C++
C#
PHOTOSHOP
UNITY
iOS
android
vue
xml
爬虫
SEO
LINUX
WINDOWS
JAVA
MFC
CEF3
CAD
NODEJS
GIT
Pyppeteer
article
热门文章
1
Git回滚和强推的使用方法及注意事项_git 强推
2
常见服务器对jdk版本的支持_jdk 不支持国产服务器
3
Flask or FastAPI? Python服务端初体验_fastapi和flask
4
mac 远程服务器命令行,Mac下如何用SSH连接远程Linux服务器及Linux一些常用操作命令,更新中........
5
队列的链式存储_队列地链式存储
6
《网络安全应急响应技术实战指南》知识点总结(第7章 网页篡改网络安全应急响应)_网络安全类型 网页篡改
7
图解Java数据结构之队列_数据结构 队列 java
8
git如何通过命令上传项目_使用git命令上传羡慕
9
Java 反编译工具哪家强?对比分析瞧一瞧_fernflower java 反编译
10
【Java进阶营】分布式架构-SOA、ESB、微服务的关系梳理_java esb框架
当前位置:
article
> 正文
网络协议分析(结合版)_案例分析:分析一个实际网络应用(如网页浏览、在线视频等)中使用的网络协议和
作者:我家小花儿 | 2024-08-14 05:25:51
赞
踩
案例分析:分析一个实际网络应用(如网页浏览、在线视频等)中使用的网络协议和
初识协议
1.什么是协议?
数据从源地点传输到目的地点,网络上所有设备需要“讲”相同的“语言”。
描述网络通信中如何规范使用“语言” 的一组规则就是协议。
2.数据通信协议:
决定数据的格式和数据的传输的一组规则或者一组惯例
协议分层
ARP协议
IP地址解析为MAC地址
• 主机10.1.1.1想发送数据给主机10.1.1.2,检查缓存,发现没有10.1.1.2的MAC地址
• 主机10.1.1.1发送ARP广播
• 所有主机都接收到10.1.1.1的ARP广播,但只有10.1.1.2给它一个单播回复,并缓存10.1.1.1的MAC地址
• 主机10.1.1.1将10.1.1.2的MAC地址保存到缓存中,发送数据
RARP协议
MAC地址解析为IP地址
• 主机A需要一个IP地址,发送ARP广播
• 主机10.1.1.254是分配IP地址的Server,它将给A一个回复
代理ARP工作原理
IP地址解析为网关的接口MAC地址
• 主机10.1.1.1需要给不在同一网段的主机172.16.1.1发送数据,但是不知道它的MAC地址,因此发送ARP广播
代理ARP工作理2-2
IP地址解析为网关的接口MAC地址
• 网关10.1.1.254给10.1.1.1一个单播回复,将自己的接口MAC地
址告诉给10.1.1.1
ICMP协议
• ICMP消息通过IP数据报传送,被用来发送错误和控制信息。
• ICMP定义了很多信息类型,例如:
目的地不可达、TTL 超时、信息请求、信息应答、地址请求、地址应答
SMTP与POP3协议
SMTP
• Simple Mail Transfer Protocol-简单邮件传输协议
• 用于发送和接收邮件
• 端口号25
POP3
• Post Office Protocol v3-邮局协议版本3
• 用于客户端接收邮件
• 端口号110
Telnet协议
Telnet
• Terminal Network
• 用于文本方式远程管理计算机或路由器等网络设备
• 端口号为TCP的23
• 在主机上操作
开始-运行-cmd
telnet 10.1.1.1
FTP协议
FTP
• File Transfer Protocol-文件传输协议
• 用于传输文件
• 端口号为TCP的21和20
传输层的协议
TCP(Transmission Control Protocol)
• 传输控制协议
• 可靠的、面向连接的协议
• 传输效率低
UDP(User Datagram Protocol)
• 用户数据报协议
• 不可靠的、无连接的服务
• 传输效率高
HTTP协议解析
WEB浏览器与WEB服务器之间的一问一答的交互过程必须遵循一定的规则,这个规则就是
HTTP协议。
l
HTTP指超文本传输协议,它是TCP/IP协议集中的一个
应用层
协议,用于定义WEB浏览器与
WEB服务器之间交换数据的过程以及数据本身的格式。
常见Web服务器组件
网站简单区分,可以分为静态网站和动态网站,动态网站可以使用脚本语言进行计算,
而一个动态网站,一般由操作系统搭载Web应用程序,然后联动数据库一起构成,一
般我们把搭载了Web应用的计算器,称之为Web服务器
HTTP请求报文
• Host
:
Host请求头主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。
Host:localhost
Host:localhost:8080
• User-Agent:
作用:告诉HTTP服务器, 客户端使用的操作系统、浏览器的名称和版本
• Accept:
作用:浏览器可以接受的媒体类型(MIME类型)
• Cookie:
作用: WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段,将 Cookie信息发送给浏览器,
浏览器则通过在HTTP请求消息中增加 Cookie请求头字段将Cookie回传给WEB服务器。
• Referer:
作用: 提供了Request的上下文信息的服务器,告诉服务器我是从哪个链接过来的。
例如:
Host:translate.google.cn
Referer:http://google.cn/?hl=zh-cn&tab=wT
说明我是从http://google.cn/?hl=zh-cn&tab=wT来到translate.google.cn的
HTTP请求方法:
• 请求方法---GET
※ GET请求格式:
<访问路径>[?<arg1>=<value1>[&<arg2>=<value2>....]]
例子:
http://site1.com/get.php
※ GET请求,可以不包含任何数据,只有请求头,没有请求数据。
※ GET请求也可以带需要传递的数据,在访问路径之后带问号(?)+参数=值的方式发送。
• 请求方法---POST
POST请求是包含数据的,请求数据的格式,可以在HTTP头
Content-Type
中定义。
格式一般会有:
※表单格式:application/x-www-form-urlencoded
※混合格式:multipart/form-data
※JSON格式:application/json
※XML格式:text/xml
※文本:text/plain
表单格式:
与get方式类似,是把所有提交数据放在数据区域。
混合格式:
※文件上传时,可以接受同时提交不同类型的数据
※类型后面一般会跟boundary来告知数据区域分隔符
※每个数据都可以单独说明数据类型
※获取文件时,可以使用相应参数,如
PHP代码如下:
$_FILES["file"]["name"] - 文件名
$_FILES["file"]["type"] - 类型
$_FILES["file"]["size"] - 文件大小
$_FILES["file"]["tmp_name"] - 临时文件路径
• 请求方法---HEAD
HEAD请求就是返回只有头部数据,数据部分不返回内容。返回的内容基本上与GET,POST
的返回头一致。
• 请求方法---OPTIONS
OPTIONS请求,默认情况下会返回服务器允许的请求类型:
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type,
AcceptAccess-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONSAccess
Control-Allow-Credentials: true
• 请求方法---PUT/DELETE
PUT:在特定目录里上传指定文件,文件名在url中设置。
DELETE:删除特定目录里的文件,文件名在url中设置。
HTTP响应
• Location:
作用:Location响应报头用于重定向接受者到一个新的位置。
• Server:
作用:Server 响应报头域包含了服务器用来处理请求的软件信息及其版本。它
和 User-Agent 请求报头域是相对应的,前者发送服务器端软件的信息,后者
发送客户端软件(浏览器)和操作系统的信息。
• Content-Type:
作用:用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什
么编码读取这个文件。
• Set-Cookie:
设置和页面关联的Cookie。
HTTP状态码
• HTTP状态码的作用是:Web服务器用来告诉客户端,发生了什么事。
• HTTP状态码被分为五大类, 目前我们使用的HTTP协议版本1.1, 支持以下的状态码。
声明:
本文内容由网友自发贡献,转载请注明出处:
【wpsshop】
推荐阅读
article
Python
深度学习11——
Keras
实现
共享
层
模型
(多
输入
多输出)_
keras
共享
权重...
Functional API,
共享
层
模型
,多
输入
多输出,神经网络中间层的可视化,中间层的权重信息_
keras
共享
权重ke...
赞
踩
article
计算机
专业
学生
毕业
后
的
就业
前景分析_
计算机
类本科
毕业
生
就业
情况...
计算机
专业
学生
的
就业
率稳定上升,月收入逐年增长,主要
就业
于
计算机
软件、新能源和互联网行业,尤其在一线城市机会丰富。
毕业
生
...
赞
踩
article
浅浅记录一下通过在
IDEA
通过
maven
搭建web项目遇到问题_
无法访问
jakarta
.servle...
一、本人在
IDEA
中配置的tomcat版本为tomcat 10.0.12,但是配置
servlet
-api依赖时,版本ve...
赞
踩
article
Matlab
安装
教程:
Matlab
安装
步骤
_
matlab
安装
教程...
本文提供详尽的
Matlab
安装
步骤
,包括下载
安装
文件、运行
安装
程序、选择
安装
选项、接受许可协议、指定
安装
路径、选择
安装
产...
赞
踩
article
【
MySQL
】多表
关系
的基本
学习
(
1
),2024年最新【
2024HarmonyOS
鸿蒙最新
学习
路线】...
insert into student values (null,‘黛绮丝’,‘2000
1
00
1
0
1
’),(null,‘...
赞
踩
article
Ubuntu
下载安装
配置
MySQL
数据库
(超详细配视频)_
ubuntu
下载
mysql
...
1. 因为
MySQL
是一键部署webase的前提条件 所以我们一定要先
下载安装
配置好。9. 将两个
数据库
的所有权限赋予本...
赞
踩
article
C#
支持
复用
字典
的
复杂
元素
_
c#
重复
的
字典
类型...
【代码】
C#
支持
复用
字典
的
复杂
元素
。_
c#
重复
的
字典
类型
c#
重复
的
字典
类型 ...
赞
踩
article
燃气管
网
安全
运行
监测
系统功能介绍
_
燃气管
网
需要
监测
什么...
通过实时
监测
、大数据分析和智能化预警,大大提高
监测
效率和准确性,并且有效预防燃气泄漏等
安全
事故的发生,为城市燃气
安全
监管...
赞
踩
article
Docker
服务启动时报错:Job for
docker
.
service
failed
becaus...
在初学
Docker
时遇到服务启动报错,通过修改配置文件和更新内核解决了问题。方法包括调整daemon.json的stor...
赞
踩
article
My
SQL
5.7
慢
SQL
慢
查询
实践_
mysql5.7
慢
查询
设置...
My
SQL
5.7
慢
查询
实践_
mysql5.7
慢
查询
设置
mysql5.7
慢
查询
设置 ...
赞
踩
article
论文
阅读(一)
_
vtpm
ibm
...
所有
论文
笔记请戳:http://blog.csdn.net/lwyeluo/article/details/540177...
赞
踩
article
Vue
前端
项目
部署
的三种方案_
vue
项目
部署
...
Nginx(发音为“engine-x”)是一款高性能的 HTTP 服务器和反向代理服务器,同时也是一个IMAP/POP3...
赞
踩
article
Mysql
主从
同步
配置
_
mysql
主从
同步
配置
博客...
mysql
主从
同步
完整篇_
mysql
主从
同步
配置
博客
mysql
主从
同步
配置
博客 注意...
赞
踩
article
mysql
位
运算
_
mysql
位
运算
数据库
设计及应用...
本文介绍了MySQL
位
运算
的基本概念,如与
运算
、或
运算
、异或
运算
,并通过例子解释了它们的作用。在
数据库
设计中,
位
运算
用于...
赞
踩
article
关于
MySQL
备份
、
主从
同步
的
一些问题_
mysql
修改
冷备
命令
...
本文介绍了如何创建一个专门用于
备份
的
MySQL
用户并授予所有权限,然后展示了一个使用
mysql
pump进行
冷备
的
bash...
赞
踩
article
Java
工程师
简历自我评价范文_
java
简历自我评价
csdn
...
具有良好的代码编写风格。这些社会经验再加上我个人吃苦耐劳、为人诚恳、勤奋刻苦、集体观念强、具有团队协作精神、创新意识,我...
赞
踩
article
SpringCloud
Alibaba
深入源码 -
Nacos
和
Eureka
的区别(健康检测...
那么当服务消费者要去消费时,就可以从注册中心拉取服务信息. 这个过程也被称为“服务发现”. 但是他这个拉去动作不是每次都...
赞
踩
article
我
对
测试
的
一点
思考
_
简单
描述
测试
方案
的
几点
思考
...
周四周五
的
时候趁着最近项目刚忙完有点时间,在公司花了半天
的
时间把极客教程茹炳晟老师
的
软件
测试
52讲80%
的
内容看完了,其...
赞
踩
article
python
-
json
path
的简单使用
_
python
json
path
赋值...
使用
json
path
提取
json
数据指定参数的值,
json
文件如下所示{ "name": "atool", "url"...
赞
踩
article
Datawhale
X 魔搭
AI
夏令营
——
AI
GC...
开通免费试用在进行授权链接:新用户需要先注册 & 绑定阿里云账号。
Datawhale
X 魔搭
AI
夏令营
——
AI
GC ...
赞
踩
相关标签
python
开发语言
学习
jvm
计算机科学与技术
maven
intellij-idea
matlab
人工智能
算法
Matlab
mysql
harmonyos
数据库
ubuntu
c#
安全
docker
容器
运维
前端
vue.js
javascript
java