【应用层】网络基础 -- HTTP协议

COMSOL实现裂缝性储层油水两相流模拟的关键技术 多孔介质中的流体流动模拟是油气藏开发的核心技术,其基本原理基于达西定律和质量守恒方程。在裂缝性储层中,离散裂缝网络与基质系统的耦合流动带来了特殊的数值挑战。通过COMSOL Multiphysics平台实现的多物理场耦合技术,可以精确模拟油水两相在复杂裂缝系统中的渗流行为。该技术采用Level Set方法表征裂缝几何形态,结合自适应网格生成技术解决狭窄裂缝的网格剖分难题,并创新性地引入Bang-Larsen毛管压力滞后模型,显著提高了采收率预测精度。这些方法在致密油藏开发、水驱优化等工程实践中具有重要应用价 阅读详情

再谈协议

协议是一种 “约定”. socket api的接口,在读写数据时,都是按 “字符串” 的方式来发送接收的(tcp是以字节流的方式发送的,这里便与表述使用"字符串")

如果我们要传输一些"结构化的数据" 怎么办呢?
在这里插入图片描述

那么我们(TCP)在收到一个报文的时候,如何保证你收到了一个完整的报文?
在这里插入图片描述
tcp是面向字节流的,所以要明确报文和报文的边界

我们调用的所有的发送函数,根本就不是把数据发送到网络中,发送函数,本质是拷贝函数tcp发送的本质,其实就是将数据从c的发送缓冲区,拷贝到s的接受缓冲区:tcp是全双工的!


HTTP协议

虽然我们说, 应用层协议是我们程序猿自己定的.
但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)
就是其中之一.

认识URL

平时我们俗称的 “网址” 其实就是说的 URL
在这里插入图片描述
在这里插入图片描述

一切你在网络中看到的都是资源,这些资源文件在你服务器的磁盘上,拿到这些文件就需要Linux系统的路径结构,http就是通过http协议从服务器上拿下来对应的"资源"。因为文件资源种类特别多,http都能搞定,所以:http协议为超文本传输协议。

不要认为在https的网址上没有看见端口号就真的没有端口号,只是一般而言端口号采用默认的443

urlencode和urldecode

像/ ? :等这样的字符,已经被url当做特殊意义理解了,因此这些字符不能随意出现。

比如,某个参数中需要带有这些特殊字符,就必须先对特殊字符进行转义。
转义的规则如下:
将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式
在这里插入图片描述

“+” 被转义成了 “%2B”,urldecode就是urlencode的逆过程;

HTTP协议格式

HTTP请求:
在这里插入图片描述
在这里插入图片描述

  • 首行: [方法] + [url] + [版本]
  • Header:请求的属性,冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
  • Body:空行后面的内容都是Body。Body允许为空字符串。如果Body存在,则在Header中会有一个Content-Length属性来标识Body的长度;

细节:
1.请求和响应怎么保证应用层完整读取完毕了?

  • 我可以读取完整的一行
  • while(读取完整的一行) 一 所有的请求行+请求报头全部读完 一 直到空行
  • 我们能保证把报头读完,报头有一个属性: Content-Length: XXX正文长度
  • 解析出来内容长度,在根据内容长度,读取正文即可

2.请求和响应是怎么做到序列化和反序列化的?
http自己实现的,第一行+请求/响应报头,只要按照\r\n将字符串1->n即可。正文不用做

HTTP响应:

在这里插入图片描述

  • 首行:[版本号] + [状态码] + [状态码解释]
  • Header:请求的属性,冒号分割的键值对;每组属性之间使用\n分隔;遇到空行表示Header部分结束
  • Body:空行后面的内容都是Body。Body允许为空字符串。如果Body存在,则在Header中会有一个
  • Content-Length属性来标识Body的长度;如果服务器返回了一个html页面,那么html页面内容就是在body中。

HTTP的方法

在这里插入图片描述

其中最常用的就是GET方法和POST方法.

在这里插入图片描述
我们进行数据提交的时候,本质前端要通过form表单提交的,浏览器会自动将form表单中的内容转换成为GET/POST方法请求

  • GET方法:
    在这里插入图片描述
  • POST方法:
    在这里插入图片描述
    区别:
  • GET通过url传递参数,具体: http://ip:port/Xxx/YY?name=value&name2=value2
  • POST提交参数通过http请求的正文提交参数!
  • Post方法通过正文提交参数,所以一般用户看不到,私密性更好,私密性!=安全性,GET方法不私密
  • 无论是GET和POST方法,都不安全!要谈安全,必须加密!
  • 通过URL传递参数,注定了不能太大,但是POST方法,通过正文,正文可以很大,甚至可以是其他的东西

HTTP的状态码

在这里插入图片描述
最常见的状态码, 比如 200(OK), 404(Not Found), 403(Forbidden), 302(Redirect, 重定向), 504(Bad Gateway)

什么是重定向?就是server告诉client,由客户端完成
在这里插入图片描述

  • 临时重定向:比如自动跳转到广告商
  • 永久重定向:比如一个公司以前用的域名更换了,但是用户不知道,所以就给旧域名一个重定向到新的域名,来防止用户找不到新地址。

HTTP常见Header

  • Content-Type: 数据类型(text/html等)
  • Content-Length: Body的长度
  • Host: 客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;
  • User-Agent: 声明用户的操作系统和浏览器版本信息;
  • referer: 当前页面是从哪个页面跳转过来的;
  • location: 搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;
  • Cookie: 用于在客户端存储少量信息. 通常用于实现会话(session)的功能;

长连接:
其实一张我们看到的网页,实际上可能由多种元素构成,所以一张完整的网页需要多次http请求

在这里插入图片描述
http网页中可能包含多个元素,http是基于tcp的,如果频繁发起http请求,那么就会有tcp面向链接的频繁创建链接的问题

长连接:建立好一条链接,获取一大份资源的时候,通过同一条链接完成
建立长连接需要client和server都要支持,才能建立,显示Connection: keep-alive表示支持长连接,显示Connection: close表示短链接

HTTP周边会话保持

HTTP无状态协议,是指协议对于交互性场景没有记忆能力。

比如点击一个纯的html网页,请求获取服务器的html文件资源时,每次http请求都会返回同样的信息,因为这个是没有交互的,每一次的请求都是相互独立的。在无交互场景中上面那样,当然也不会有太大的问题。但是对于涉及到动态交互的场景,就显得很尴尬了

会话保持严格意义不是http天然具备的,是后面使用发现需要的,http协议是无状态的。但是用户需要。因为用户查看新的网页是常规操作,如果发生网页跳转,那么新的页面也就无法识别是哪一个用户了,为了让用户一经登陆,可以在整个网站,按照自己的身份进行随意访问

在这里插入图片描述

cookie技术:

  • cookie文件:比如你登陆了一个网站,关闭浏览器,结束掉这个进程,你再次登陆这个浏览器的网站,你不需要重新登陆,这就是文件级别的。
  • cookie内存:跟上面例子相反,你没有关闭浏览器,你关闭这个网站重新打开不需要登陆,但是你关闭浏览器以后,再次打开这个浏览器的网站就需要重新登陆。(使用文件还是内存可以自行配置)

在这里插入图片描述

在这里插入图片描述

配合策略:比如异地登陆提醒等。
比如你个人的信息被黑客盗取走问题可能不是特别严重,但是如果企业的信息被盗取,问题就上升了几个档次。


如有错误或者不清楚的地方欢迎私信或者评论指出🚀🚀

基于VLFM的中文指令视觉语言导航系统设计与实现 文章摘要 本文介绍了一个基于VLFM(视觉语言边界地图)的中文指令视觉语言导航系统设计与实现。该系统采用模块化架构,包含三维场景渲染、URDF机器人仿真、VLFM导航引擎、中文指令解析和PyQt图形界面五大核心模块。系统支持自定义GLB场景模型和URDF机器人模型,通过transformers和langchain实现中文自然语言指令解析,利用VLFM算法进行语义导航决策。技术实现上详细介绍了GLB模型加载器开发、URDF机器人控制、VLFM导航算法集成以及PyQt界面设计。该系统在Ubuntu环境下运行,依 阅读详情

相关推荐

人工智能学习之机器人路径规划优化

A* AStar 人工智能 机器人路径规划优化

RongLin02的博客 7073

Linux 网络基础(2)应用层(http/https协议、请求格式、响应格式、session、cookie、加密传输)

应用层(http/https协议、请求格式、响应格式、session、cookie、加密传输)

weixin_59215611的博客 1513

考虑风和浪的影响的旋筒帆船航线优化方法研究

针对旋筒帆船进行航线优化的实现方法,包括升阻力系数的数值模拟、升阻力系数的多元非线性回归建模、旋筒帆船6DOF摇荡运动建模分析以及考虑风、浪影响的旋筒帆船的航线优化研究。

m0_63225885的博客 1163

应用层网络基础【HTTP协议】

协议 首先什么是协议? 计算机与网络设备间要互相通信,双方必须基于相同的方法。eg:如何探测到通信目标、由哪一边发起通信、使用什么语言、怎样结束通信等规则都要事先确定。不同的硬件、操作系统之间的通信,所有的这些都需要一种规则,这种规则就称为协议。一句话说:协议就是约定 应用层协议 负责应用程序之间的数据沟通 自定义协议 这里以网络计算器为例: 客户端给服务器发送的请求是什么样的? 包含的信息(数...

amara 335

Unity Shader实战:用Matcap给你的低模角色快速换上‘次世代’材质(附完整Shader代码)

本文详细介绍了Unity中Matcap技术的实战应用,通过Shader代码实现低模角色的次世代材质表现。Matcap技术利用预烘焙光照贴图,显著提升材质质感同时保持极低性能消耗,特别适合移动游戏和独立开发。文章包含完整Shader代码、平面模型着色优化方案及动态环境反射增强技巧,帮助开发者快速提升低模视觉效果。

weixin_28718755的博客 385

海康视觉平台VisionMaster使用学习笔记(1)

双击图像源设置图像源的属性,像素格式分为Mono8和RDB24分别对应导入的图像是彩色还是黑白。打开相机驱动软件MVS,对连接的相机进行属性上的配置,先对相机的IP进行对应的设置。将自动触发的使能打开,保存配置好的相机属性,默认保存到用户集1中。点击MVS软件中的触发按钮,查看相机是否进行正常的触发拍照。打开VM软件添加一个图像源,选择图像源选项拖出图像源。回到VM软件中将选择相机选项选择到配置好参数的相机。取图方式也可以调整为相机取图,将图像源改为相机。双击相机进行连接后对相机的属性进行配置。

A567852的博客 1万+

HTTP协议【网络基础/应用层】

本文介绍了TCP/IP基础、URL/URI的作用、HTTP协议的基础部分:方法、状态码、Header以及重要的会话管理。通过C++代码实现了一个简单的HTTP服务器,并使用浏览器作为客户端实验,这算是我目前觉得最神奇的一次实验了。

Man9o 1702

Cadence Virtuoso Layout 版图绘制

画好原理图,打好pin脚(pin最好以全大写的形式书写,以防后续操作中可能出现Bug) 查看所使用工艺库的design rule文件,确定栅格单位设置大小 在准备绘制的原理图界面启动layout XL/GXL 在layout界面按e,设置网格大小与design rule匹配 直接根据原理图生成版图 根据原理图连接关系显示版图中未连接的飞线 查看和更改原理图与版图中器件对应的链接关系 shift + f:显示器件版图细节 版图的构成:元器件(工艺厂商提供)、器件连接、阱连接、IO和PAD模拟电路

bobo_supper的博客 2万+

前端网络基础-应用层HTTP协议

2、HTTP请求不再只由浏览器发起,现在无论是浏览器还是服务器,或者是手机app都可以发起3、早期地HTTP请求只能由浏览器刷新网页发起,是同步的,现在有了Ajax,可以发起异步的HTTP请求。

2501_90424955的博客 2053

矿石生成(1)

这个提供了标准化的矿石放置配置模板简化了常见和稀有矿石的配置过程遵循了Minecraft原版的世界生成模式提高了代码的可读性和可维护性通过使用这个类,模组开发者可以更轻松地配置矿石的生成规则,而不需要每次都手动编写完整的放置修饰符列表。这种设计模式在原版Minecraft和其他大型模组中也很常见,是一种良好的编程实践。// 导入语句...// 字段和方法...包声明表明这个类位于luckymod模组的WorldGen包中,专门处理世界生成相关配置。导入语句。

qq_24992377的博客 137

030、微透镜阵列与光场成像:从光场相机到深度感知的演进

文章摘要: 光场成像通过微透镜阵列(MLA)同时记录光线的位置与方向,实现单次曝光获取三维信息。其核心架构包括主镜头+MLA+传感器或相机阵列,各有分辨率与体积的权衡。光场支持先拍照后对焦和深度估计,但受限于微透镜基线短,精度较低。深度算法需结合多视角立体匹配与极平面图像分析,并处理噪声和温度漂移等实际问题。光场适用于短距离动态场景(如手势识别),而远距离高精度需求仍需激光雷达。建议初学者通过二手光场相机和开源工具入门,理解光场“角度域”与“空间域”的协同机制。

sundong_81的博客 50

网络基础应用层--HTTP协议

而应用程序是程序员自己写的,应用程序之间如何沟通,用什么协议程序自己定义。自己定制的数据格式约定。传输性能+解析性能传输:按照指定格式组织好的二进制数据串要尽可能短小解析:将二进制数据串进行解析得到数据对象尽可能简单快速不成熟版本,只有GET进行超文本数据传输,协议格式不完善…....

baiduren__的博客 2514

【数据集】CAMS 全球生物质燃烧排放 GFAS(基于火灾辐射功率)

CAMS 全球生物质燃烧排放 GFAS(基于火灾辐射功率)

WW、forever的博客 400

网络基础 -- 应用层HTTP协议

应用层(TCP/IP协议中的应用层/HTTP协议) HTTP协议 URL -- 统一资源定位符 UrlEncode / UrlDecode HTTP协议格式 概述 HTTP 请求消息Request / 响应消息Response 首行 请求(Request)首行 请求(Request)首行 头部 正文 实现一个简单的HTTP服务器

爱上小公举 1253

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

网络基础:应用层的典型协议:http协议、https协议

文章目录应用层自定制协议实例:网络计算器☆HTTP协议 应用层 应用层负责应用程序之间的沟通,程序员可以自己对数据的格式进行约定,消息发送方和接收方都需要遵守这种约定。 应用层的典型协议:自定制协议;知名协议—HTTP协议 自定制协议 自定制协议:其实就是程序员自己定制的协议,程序员自己规定一种数据格式,按照这种数据格式进行网络通信,定制的同时要考虑数据的传输性能以及解析性能。 实例:网络计算器 客户端将两个数字以及运算符传输给服务端;服务端对数据进行运算后,将结果返回给客户端。 我们此处使用结构体来组织数

weixin_43962381的博客 1164

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

网络基础之应用层协议,组织方式,自定义协议和http协议https协议简单介绍

应用层介绍 应用层是什么 组织方式 序列化 反序列化 常见的自定义序列化方式 HTTP协议——超文本传输协议(最早就是用来传输web网页传输的) HTTP协议的特性 HTTP协议的格式: HTTP 请求 请求行 HTTP常见Header HTTP常见状态码 HTTP响应 头部字段中的cookie(请求头)和set-cookie(响应头) **session和cookie简单区别** HTTPS协议: 为什么要进行加密: CA证书

awofe的博客 836

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

网络基础(二)应用层HTTP协议

文章目录TCP协议的面向字节流特性以及引申出来的粘包问题HTTP协议介绍通用资源定位符URLweb服务器以两种不同的方式向客户端提供内容:简单的URL格式分析:Http协议的组成1.HTTP请求2.HTTP响应 应用层: 负责应用程序之间的数据传输,我们程序员就工作在这一层上 TCP协议的面向字节流特性以及引申出来的粘包问题 从套接字编程角度对于传输层TCP协议特点里的—面向字节流解读 从创建一个TCP的socket起, 同时在内核中创建一个发送缓冲区和一个接收缓冲区; 对于发送: 1.调用write时

e我所欲也的博客 1146

网络基础 TCP/IP五层模型之应用层与HTTP协议

应用层 简单理解,应用层就是负责应用程序之间数据沟通,比如:简单的电子邮件传输(SMTP),文件传输(FTP),网络远程访问协议(Telnet)等。 协议? 协议就可以理解为一种“约定”。 在应用层已经有了特别成熟好用的协议——HTTP协议。 HTTP协议 HTTP协议格式: HTTP请求: ...

C_U_N_Z的博客 1140

网络基础(二)应用层与http协议详解

socket接口在读写数据时,都是按字符串的方式接收的,若要传输一个“结构化的数据”,就需要使用序列化和反序列化。 序列化是将数据由多变到一的过程,反序列化是将数据由一分为多的过程。 ip地址唯一标识公网当中的一台主机 端口号唯一标识互联网特定主机上的特定进程。 每一对端口号加ip地址能够唯一标识网络中一台主机上唯一的网络进程,将其称为套接字,因此所有的网络行为本质上都是进程间通信。 http协议...

297

【Linux】网络基础知识(二)—— 应用层 —— HTTP协议详解

文章目录应用层1. 再谈 "协议"1.1 自定制协议2. HTTP协议2.1 认识URL2.2 urlencode和urldecode2.3 HTTP协议格式2.3.1 HTTP请求2.3.2 HTTP响应2.4 HTTP常见Header2.5 HTTP的方法2.6 HTTP的状态码3. 实现简单的HTTP服务器4. 测试不同的状态码 应用层 我们程序员写的一个个解决我们实际问题,满足我们日常需求的网络程序,都是在应用层。 1. 再谈 “协议” 协议是一种 “约定”,socket api的接口,在读写数据时

丁丁逗的博客 622

网络基础-应用层:web服务与HTTP协议

web与HTTPweb:world wide web 就是我们所说的万维网:是一个大规模的联机式的信息储藏室。 万维网是一个分布式的超媒体系统,是超文本系统的扩充。 网页包含多个对象:可能是HTML文件,JPEG图片,视频文件,动态脚本等。万维网以C/S结构工作:客户程序向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。 对象的寻址:URL(Uniform Resoure

mxrrr_sunshine的博客 858

前端网络基础-应用层HTTP协议,HTML标签分类

2、HTTP请求不再只由浏览器发起,现在无论是浏览器还是服务器,或者是手机app都可以发起3、早期地HTTP请求只能由浏览器刷新网页发起,是同步的,现在有了Ajax,可以发起异步的HTTP请求。

2401_84093490的博客 699

[Linux]---网络基础( 应用层协议:http协议 )

TCP粘包问题 什么是TCP粘包问题 tcp对于收发双方的数据采用字节流的方式进行传递,tcp在传输层进行工作,接收到的数据需要递交给应用层,由于接受方tcp对于发送方tcp发送的数据是不分边界的,而是直接全部接受到缓冲区当中的数据递交给应用层。这样就会导致可能发送方发送的两次数据被一次接收后全部交给应用层,应用层如果不加以区分,就会发生问题,无法区分两次接收的数据。下面进行举例: 怎么...

夜微雨的博客 714

网络基础-应用层协议-HTTP/HTTPS

🚀数据摘要&数据指纹:原理就是通过单项的散列函数对数据进行运算,生成一段固定长度的数据摘要。但是这并不是一种加密机制,因为没有解密,但是可以用来判断一份数据有没有被篡改,一份数据中只要有一个字母被修改那么形成的数据摘要就有很大的差距。常见算法:MD5。

Djsnxbjans的博客 829

四路 CAN 转 4G 网关

SG‑CAN‑4G‑410 为**四路隔离 CAN 转 4G 工业网关**,把 CAN2.0A/B 报文封装成 TCP/UDP 报文,通过 4G 无线网络实现 CAN 总线远程监控、远程控制。四路 CAN 相互独立;以太网仅用于本地配置,不做业务数据传输;支持移动 / 联通 / 电信 4G 网络。

S2003120416的博客 166
上一篇: 【Linux网络】网络编程套接字 -- 基于socket实现一个简单UDP网络程序
下一篇: 【应用层】网络基础 -- HTTPS协议
侠客cheems
博客等级 码龄5年 1444粉丝 78原创
评论 46
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

侠客cheems

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值