news 2026/5/14 18:56:25

Linux(11)(上)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux(11)(上)

一.应用层

1. 再谈协议

  • 协议是一种 "约定". socket api的接口, 在读写数据时, 都是按 "字符串" 的方式来发送接收的. 如果我们要传输一些"结构化的数据" 怎么办呢下面来解释。

2. 序列化和反序列化

  • 为什么需要:为什么需要序列化和反序列化,就是因为不同的编译器它对内存数据管理是不一致的,因此直接交换数据会出错。
  • 序列化:序列化是将内存中的复杂数据(结构体、对象等),转换为无歧义的字符串方便传输的过程
  • 反序列化:就是序列化的相反操作

二.HTTP协议

2.1 HTTP 基础知识

预备知识

  • www.baidu.com/→ 域名 → 域名解析 → IP地址

  • 183.2.172.185/→ 直接使用IP地址访问

  • 220.181.38.150/→ 另一个IP地址示例

  • 80:HTTP默认端口号(未显式写出时默认为80)

  • 443:HTTPS默认端口号未显式写出时默认为80)

URL结构

http:// user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1 #URL统一资源定位器,所有网络上的资源都可以用一个唯一标识获取 http:// user:pass@ www.example.jp :80 协议名 登录信息(少用因为页面本身就有信息) 域名 端口 /dir/index.htm 文件路径(第一个/是web根目录,通常对应服务器上的某个文件夹) ?uid=1 #ch1 传递参数 片段标识符

网络行为

  • 把别人的东西拿下来(下载)

  • 把自己的东西传上去(上传)

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

  • 因此,某个参数中需要带有这些特殊字符, 就必须先对特殊字符进行转义(urlencode)

  • 转义的规则如下:

    • 将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式("+" 被转义成了 "%2B")

  • urldecode就是urlencode的逆过程

2.3 HTTP的响应和请求

图中要点:

  1. Method表示我想要对资源干什么,HTTP Version表示版本号

  2. \r\n是HTTP每行的结束标记

  3. Key:value是信息格式

  4. content-Length:xx表示正文内容长度

  5. 表示分隔把请求行、请求报头分成一部分;把请求正文分成另一部分
  6. 状态码表示的是服务器响应的结果由3位数字代表,其中404大家肯定有影响,状态码描述就是对状态码的解释

例子:

1.请求

2.响应

细节讲解:

关于方法只讲这两部分,因为其常用,其他不做讲解和展示!

那二者的区别是什么呢?

首先我们需要了解在使用某些网站的时候是这么把数据传给服务器的呢,是通过表单进行提交的!

  • GET方法:我们提交的参数是通过url提交的

  • POST方法也支持参数提交,采用请求的正文提交参数

注意:

GET方法通过URL进行提参,参数数量受限的,不私密,不过POST只是更私密一点,但是同样不安全,这就是二者最大区别了

2.4 HTTP的状态码

关于这部分,我们主要了解一下即可!

最常见的状态码,比如:200(OK), 404(Not Found), 302(Redirect, 重定向), 504(Bad Gateway)

关于客户端错误码需要和大家讲一下:就是我客户端向你服务器发出请求,你做不到不应该是你的问题吗,这么能说我客户端的问题,主要是因为你客户端提出的要求服务器根本实现不了!

重定向概念:

根据图片你大概就能了解了,就是你浏览器向服务器发出请求,然后服务器发出3xx的状态码外加Location(这个是响应报头的内容),那么浏览器就会根据这个location去访问其他的服务器!

2.5 HTTP常见Header

注意:这里介绍的有请求报文独有的和响应报文独有的,还有是双方共用的

Content-Type:数据类型(text/html等)

  • 告诉对方(客户端或服务器)当前传输的数据是什么类型(MIME 类型),以便正确解析。

Content-Length:正文的长度

Host:客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上;

User-Agent:声明用户的操作系统和浏览器版本信息;

  • 用于识别客户端类型,服务器判断请求是否来自爬虫的常用依据之一,不过其并不可靠容易被伪造!

location:搭配3xx状态码使用, 告诉客户端接下来要去哪里访问;

Cookie:用于在客户端存储少量信息. 通常用于实现会话(session)的功能;

  • 用户提交账号密码给服务器,然后服务器设置Cookie给浏览器,浏览器保存Cookie文件,这样下次浏览器在访问服务器就不需要登录了

  • 内存级Cookie(保存至浏览器进程当中,当关闭浏览器这个Cookie会被删除)

  • 文件级Cookie(保存至硬盘当中,到达过期时间Cookie才会被删除)

  • 为了安全现代HTTP主流采用敏感隐私信息不直接存储在客户端的 Cookie 中,而只在 Cookie 中保存一个无意义的会话标识(如 session ID),真正的用户数据由服务器安全存储(例如在内存、数据库或缓存中),并通过该标识关联。

Connection:链接类型(长连接和短连接)

  • 网页通常由很多资源组成

  • 每一个元素就是一个资源

  • 一次请求响应一个资源。关闭连接,短连接;不关闭连接,长连接

  • HTTP/1.0 默认使用短连接,但可以通过 Connection: keep-alive 扩展实现长连接

  • HTTP/1.1 默认使用长连接,但可以通过 Connection: close 关闭长连接实现短链接

  • 当客户端和服务器的 HTTP 版本不一致时,通信行为以「客户端请求中声明的版本」为准,服务器需向下兼容并据此响应。

这个只是开胃小菜,下期带来的是HTTP的知识讲解,还有为什么我们现在使用的是HTTPS而不是HTTP,他俩到底有啥区别,敬请收看下期!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:24:48

如何快速打造极致轻量Windows 11:tiny11builder完整实战指南

如何快速打造极致轻量Windows 11:tiny11builder完整实战指南 【免费下载链接】tiny11builder Scripts to build a trimmed-down Windows 11 image. 项目地址: https://gitcode.com/GitHub_Trending/ti/tiny11builder 想要体验一个清爽高效的Windows 11系统吗…

作者头像 李华
网站建设 2026/5/11 11:59:58

3步解锁:用Arduino复活故障电池的终极方案

3步解锁:用Arduino复活故障电池的终极方案 【免费下载链接】open-battery-information 项目地址: https://gitcode.com/GitHub_Trending/op/open-battery-information 你是否遇到过这样的情况:电动工具电池明明还能充电,却被系统判定…

作者头像 李华
网站建设 2026/4/26 0:09:24

NewBie-image-Exp0.1必备脚本:create.py交互功能深度使用指南

NewBie-image-Exp0.1必备脚本:create.py交互功能深度使用指南 1. 背景与核心价值 NewBie-image-Exp0.1 是一个专为动漫图像生成任务设计的预配置深度学习镜像,集成了当前先进的生成模型与优化工具链。该镜像解决了传统部署中常见的环境依赖冲突、源码 …

作者头像 李华
网站建设 2026/5/4 13:44:47

AI图像放大革命:Upscayl如何让模糊图片重获新生

AI图像放大革命:Upscayl如何让模糊图片重获新生 【免费下载链接】upscayl 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_Trending/u…

作者头像 李华
网站建设 2026/5/12 7:25:36

Whisper Large v3模型缓存管理:加速二次启动的配置方法

Whisper Large v3模型缓存管理:加速二次启动的配置方法 1. 引言 1.1 业务场景描述 在构建基于 OpenAI Whisper Large v3 的多语言语音识别 Web 服务时,开发者常面临模型首次加载耗时过长的问题。尤其是在生产环境中,每次服务重启都需要重新…

作者头像 李华
网站建设 2026/5/1 10:01:28

YOLOv8优化技巧:模型缓存机制

YOLOv8优化技巧:模型缓存机制 1. 引言:工业级目标检测的性能挑战 在实际部署YOLOv8这类高性能目标检测模型时,尽管其本身具备毫秒级推理能力,但在高并发、多请求场景下仍可能面临重复加载模型、频繁初始化权重和冗余前处理等性能…

作者头像 李华