首页 > 其他分享 >web网络通信

web网络通信

时间:2023-06-15 15:36:41浏览次数:42  
标签:网络通信 web socket ip 服务器 数据包 连接 客户端

WEB通信流程

静态数据:png,css,js,gif,mp4

动态数据:从mysql数据库中读取出来的数据

  1. 访问DNS服务器,通过DNS获取相应的域名对应IP
  2. 通过IP对应服务器后,简历TCP连接
  3. 等浏览器发送完HTTP Request包后,服务器接收到请求包后才开始处理请求包
  4. 服务器调用自身服务,返回HTTP Response(响应)包
  5. 客户端收到来自服务器的响应后开始渲染这个Response包里的主体(TCP)连接

web服务器工作原理

  • 客户端通过TCP/IP协议简历到服务器的TCP连接
  • 客户端向服务器发送http协议请求包,请求服务器里的资源文档
  • 服务器向客户端发送HTTP协议应答包,如果请求的资源包含有动态语言内容,那么服务器会被调用动态语言的解释器引擎负责处理"动态内容",并将处理得到的数据返回给客户端
  • 客户端与服务器断开,由客户端解释HTML文档,在客户端屏幕上渲染图形结果

客户端请求到达服务端流程

  • 当客户端拿到服务器域名对应的ip后,浏览器会以一个随机端口, 向服务器的web程序(nginx,apache)的80端口发起tcp连接请求
  • 该请求经过复杂的网络环境后到达服务i端,进入到服务i器的对应的网卡,再进入linux内核的tco.ip协议栈, 一层一层的解开书库包,生值经过防火墙,最终到达nignx程序,确认ctp/ip连接
  • 确认tcp连接之后,客户端继续发起http请求,入插件的get,post请求方法
  • 确认tcp连接之后,客户端继续发起http请求

找数据库,db51

找静态数据,nfs

客户端60s后不再发请求,客户端会和服务端端口连接(TCP/IP连接)

TCP/IP协议

tcp :传输控制协议(protocol):面向连接的可靠的基于字节流的传输通信协议(传输层)

​ tcp就是控制数据包再传送过程中和规范格式

IP(网络层)

数据包的发送和接收需要经过OSI模型的一层一层封装

根据端到端的涉及原则,IP只为主机提供一种无连接\不可开的的\尽力而为的数据包传输服务

tcp/ip协议指的不仅限于tcp和ip协议

而是由ftp,smtp,tcp,udp,ip等各种协议组成的协议簇

OSI网络七层模型

image-20230614155003348

  • 应用层:为操作系统或网络应程序访问服务的接口(Telnet,FTP,Http,SNMP,DNS等)

    • 指的是具体的软件socket接口
  • 表示层:解密和加密,图片解码和编码,数据的压缩和解压缩(url加密,口令加密,图片编解码)

    • 对url进行解析,加密解密等.在服务端进行编码,客户端进行解码等
  • 会话层:使用校验点可时会话在通信失效时从校验点恢复通信(服务器验证用户登录,断点续传)

    • session.如访问淘宝网,以及它的子页面,无需再次登录
  • 传输层:建立连接,处理数据报错误,数据包次序(TCP,UDP,SPX,进程,端口(socket))

    • ip的使用和port的使用(ip+port=socket套接字连接),应用程序的通信,就是基于socket连接来的
  • 网络层:对子网间的数据包进行路由选择 进行路由自动寻址

  • 链路层:将数据分帧,并处理流控控制,物理寻址,重发(网卡\网桥\二层交换机等)

    网卡都有一个唯一的出厂序列号(MAC地址)

  • 物理层:网络通信的数据传输介质,由电缆和设备共同构成(中继器,集线器,网线,HUB,RJ-45标准)

TCP的三次握手

image-20230615131905376

数据包是藏在网络背后的数据交互过程,一般不去看,不用管

  • 第一个数据包,从什么序列号开始发的
  • 第二个数据包,从什么序列号开始接收的

序列号对不上的,就是在这某2个数据包之间出现了问题,你去看这两数据包,分别是来自于什么协议发出的就找对应的问题

什么时候去琢磨数据包的序列号,比如一些数据不同步,交易数据丢失等极端情况,需要去抓取数据包,逐个分析,数据包的完整性,序列号等

image-20230615134201512

image-20230615140033899

image-20230615140346110image-20230615143033530

常见的端口号

什么是套接字

套接字存在的意义:

​ 在于让两端进行数据交互,数据传输

任何两个机器的连接,指的是tcp/ip协议的连接,本质上是两个socket的通信

socket套接字就是ip+port的具象化

比如部署nginx服务,运行在10.0.0.7:80端口,就是一个socket

通过本地去访问socket,浏览器随机指定的端口,发出请求

10.0.0.1:61145 这也是一个socket

本地套接字

本地内存文件socket形式的

​ 本地内存文件socket比网络形式的socket传输效率更高

mysql运行在/tmp/mysql.sock
这个文件存在,则表示mysql运行
可以通过/tmp/mysql.sock去运行mysql

网络套接字

通过网络建立通信

http是无连接的,需要cookie和session

image-20230615144902064

请求方法

定义client发给service的请求,是什么类型

  • get获取静态数据(查看一个图片)
  • post发送提交一些数据(登录表单,提交账户密码数据)

响应状态码

  • 20x系列:表示请求,响应正常解析

  • 30x系列:表示本次请求,被转发到另一个服务器上了

  • 40x系列:表示client客户端访问的url有问题,该资源不存在

  • 50x系列:表示网站的服务端出错了

标签:网络通信,web,socket,ip,服务器,数据包,连接,客户端
From: https://www.cnblogs.com/jiangxuling/p/17483017.html

相关文章

  • 采用注解方式-HTTP Status 404 – Not Found 或者 采用web
    采用注解方式->HTTPStatus404–NotFound或者采用web.xml方式->cannotresolvetheclassinthetag运行一个简单的servlet程序,分别采用了两种方式对servlet进行映射,均报错。1⃣️采用Annotation方式@WebServlet(name="DownloadServlet",urlPatterns="/download"......
  • 深入了解REST约束,优化你的web应用
    REST是RepresentationalStateTransfer的缩写,是RoyFielding于2000年提出的一种通过HTTP设计松散耦合应用程序的架构风格,其主要应用于Web服务的开发。REST不是强制性的,可以不遵守,但它提供了一种高级设计指南。架构约束REST定义了六种架构约束来构成Web服务。RESTfu......
  • asp.net WebUploader 分块上传
    ​IE的自带下载功能中没有断点续传功能,要实现断点续传功能,需要用到HTTP协议中鲜为人知的几个响应头和请求头。 一. 两个必要响应头Accept-Ranges、ETag        客户端每次提交下载请求时,服务端都要添加这两个响应头,以保证客户端和服务端将此下载识别为可以断点续传......
  • JavaScript开发工具-WebStorm 2023 mac/win版
    WebStorm是一款由JetBrains开发的JavaScript开发工具,是专为JavaScript开发者设计的集成开发环境(IDE)。它提供了强大的功能和工具,能够帮助开发者更高效地编写、调试和维护JavaScript代码。→→↓↓载WebStorm2023mac/win版 WebStorm拥有一套丰富的功能,使得它成为JavaScript开......
  • 测试类中启动web环境
    先在pom.xml文件中引入相关依赖<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>然后定义测试类进行模拟: ......
  • 创建项目-空项目、java项目、web项目
    空项目(EmptyProject):空项目是一个完全空白的项目,没有任何默认的目录结构或配置文件。你可以根据需要自定义项目的结构和配置,适用于从头开始构建自己的项目。Java项目(JavaProject):Java项目是一个标准的Java应用程序项目,具有默认的目录结构和配置。它包含了源代码目......
  • 25 个在 Web 中嵌入图表的免费资源
    在Web中嵌入图形图表的技术越来越丰富,我们可以选择JavaScript库,CSS,Flash,Silverlight,PHP库,服务器端的组件,也可以选择GoogleChartAPI这样的Web服务。本文介绍了25个在Web中嵌入图形图表的免费资源。 JSCharts(基于JavaScript的图表生成工具)Protovis(可视化javaS......
  • 使用Node.js和WebHDFS REST API访问Hadoop HDFS数据
    可用服务以下是可用的服务集:1)文件和目录操作  1.1创建和写入文件:CREATE(HTTPPUT)  1.2附加到文件:APPEND(HTTPPOST)  1.3打开并读取文件:OPEN(HTTPGET)  1.4创建目录:MKDIRS(HTTPPUT)  1.5重命名文件/目录:RENAME(HTTPPUT)  1.6删除文件/目录:DELETE(HTTPDELETE) ......
  • HTML5 WebUploader 分片上传
    ​ 一、基本介绍 1,什么是WebUploader?WebUploader是由百度公司团队开发的一个以HTML5为主,FLASH为辅的现代文件上传组件。官网地址:http://fex.baidu.com/webuploader/JS-文件上传组件WebUploader使用详解2(MD5秒传、判断是否已经上传过)2,功能特点分片、并发:WebUplo......
  • 2023小红书web端搜索采集笔记视频点赞关注评论去水印接口源码nodejs
    文章标签:前端笔记java版权声明:本文只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!一、notejs接口调用方法(源码级别):获取笔记信息helpnow_get_note_by_id("笔记ID")获取当前用户信息helpnow_self_info()获取用户信息helpnow_user_info("用户ID")获取主页推......