linux网络 | http结尾、理解长连接短链接与cookie

**前言:**本节是http章节的最后一部分,主要解释一些小概念。讲解到了HTTP的方法,表单, 重定向等等。 现在废话不多说, 开始我们的学习吧。

ps:本节内容都是概念, 知道就行, 友友们放心观看哦。

目录

HTTP方法

表单

重定向

Connection

Cookie


HTTP方法

一般我们获取方法, 使用的都是GET方法。 还有一种方法叫做POST方法, 也是获取资源。 下面是可以使用的HTTP方法。

|---------|-------------|---------|
| GET | 获取资源 | 1.0、1.1 |
| POST | 获取实体主体 | 1.0、1.1 |
| PUT | 传输文件 | 1.0、1.1 |
| HEAD | 获得报文首部 | 1.0、1.1 |
| DELETE | 删除文件 | 1.0、1.1 |
| OPTIONS | 询问支持的方法 | 1.1 |
| TRACE | 追踪路径 | 1.1 |
| CONNECT | 要求用隧道协议连接代理 | 1.1 |
| LINK | 建立和资源之间的联系 | 1.0 |
| UNLINK | 断开链接关系 | 1.0 |

PUT时请求传输文件,假如我们第一行那里时PUT方法,那么就是要传输文件。 假如我的请求行是HEAD方法, 那么就是要获取各个报文的首部。 假如我的请求行时DELETE方法, 那么就是请求删除某一个文件等等。这里我们用到最多的其实是GET和POST。

表单

我们日常使用某些网站(http/https), 是如何把我的数据交给服务器的? 日常的时候是怎么提交的呢?? ------这里其实是通过表单进行提交的。

什么是表单, 表单就是我们在任意网站, 进行密码登陆的时候那个文本框:

这个东西, 就是表单。 他们是用来提交数据的。

POST方法也支持参数提交, 采用请求到正文提交参数。 GET方法通过url进行提参数。 参数数量是受限的。 GET方法的参数会回显, 不私秘。POST方法私密。但是GET和POST都是不安全的。想要安全,就要加密。

HTTP的状态码,状态码其实就是响应行那的那个状态码。

  • 2开头一般就代表正常处理完毕。
  • 3开头一般就代表重定向状态码。
  • 4开头一般就代表客户端错误。
  • 5开头一般就代表服务端错误。

最常见的状态码:200(OK), 404(NOT FOUND), 403(Forbidden), 302(Redirect重定向), 504(Bad Gateway)

重定向

HTTP报头中有一个叫做location的字段。location是一个搭配3XX状态码使用, 告诫客户端记下来去哪里访问的字段。

所以, 重定向, 就是让服务器知道浏览器, 让浏览器访问新的地址。

重定向分为永久重定向和临时重定向。永久重定向就是以后都不来这里访问了,临时重定向就是只改变临时方向,下次访问是还是访问这个网站。

Connection

HTTP还有一个重要的概念就是他的属性, 首先我们看一下Content-length属性, 这个属性我们都知道表示正文的长度。 HOST就是表示目标主机是谁。User-Agent就是表示用户的操作系统和浏览器的版本信息。referer就是记录下来, 当前页面之前的那个页面。就是比如我本来在a页面,然后点击进入b页面。那么b页面的referer就是a页面。

然后就是Location, 我们之前说过。

还有一个字段就是Connection。我们接收到http请求,保温里面有一个叫做Connection:keep-live。

这个如何理解?

我们知道, 一个页面是有非常多的元素的。 每一个元素, 就是一个资源。

然后我们也知道, http协议是基于tcp的, 而tcp协议是基于字节流的。 而且, 浏览器和服务器建立起来接, 必须要经过tcp的connect。 那么, 如果有101个资源, 那么我们请求资源一共101次,每一次请求都要请求连接, 然后发送请求。 发送请求后又要断开连接。 那么一共101次, 就特别浪费时间。 这种一次请求一个资源,就关闭连接我们称为短链接。

后来, 我们的http的设计者就想到, tcp就是双向通信的一个信道,就是下面的图:

这种一次连接, 多个请求, 就叫做长连接。

http1.0默认支持的就是短链接, http1.1默认支持的就是长连接。然后我们的请求方和响应双方进行交互的前几次, 其实也是在协商http的版本。 然后如何证明我们的协商后的版本,就是这个Connection。 如果Connection是keep-alive, 那么就是长连接。

http协议是无状态的, 就比如我们今天访问一个网页, 我们反复刷新的时候, 浏览器就要一次一次的向服务器发起请求。 http已经不记录自己曾经访问这张图片, 这个网页。 所以请求一次,下一次请求还是要重新发送请求。 但是如果是这样的, 假设我们刷视频, 我们看一个视频是不是就是一次请求? 而如果每次刷新视频都重新请求, 也就是意味着要重新登陆, 那么是不是就算太麻烦了, 所以这里就用到了cookie。

下面就是一个cookie建立的过程。 一开始我们现在浏览器填写账号密码。 然后浏览器将数据打包发送给b站。 b站就收账号密码后进行身份验证, 验证成功后响应请求。 将账号密码作为cookie打包响应回去。 然后浏览器就收到了cookie, 以后再登录就是使用cookie里面的数据了。

相关推荐
tan77º19 分钟前
【Linux网络编程】Socket - UDP
linux·服务器·网络·c++·udp
czhc114007566331 分钟前
Linux 76 rsync
linux·运维·python
蓝易云2 小时前
Qt框架中connect()方法的ConnectionType参数使用说明 点击改变文章字体大小
linux·前端·后端
花落已飘2 小时前
多线程 vs 异步
linux·网络·系统架构
PanZonghui2 小时前
Centos项目部署之Nginx部署项目
linux·nginx
G等你下课3 小时前
AJAX请求跨域问题
前端·javascript·http
码出钞能力3 小时前
linux内核模块的查看
linux·运维·服务器
星辰云-4 小时前
# Linux Centos系统硬盘分区扩容
linux·运维·centos·磁盘扩容
聽雨2374 小时前
02每日简报20250704
linux·科技·金融·生活·社交电子·娱乐·媒体
Maki Winster5 小时前
Peek-Ubuntu上Gif录制工具-24.04LTS可装
linux·ubuntu·peek