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里面的数据了。

相关推荐
筑梦之路15 分钟前
CentOS 8 Stream 配置在线yum源参考 —— 筑梦之路
linux·centos
无名之逆21 分钟前
[特殊字符] Hyperlane:Rust 高性能 Web 框架的终极选择 [特殊字符]
服务器·开发语言·前端·网络·后端·http·rust
Sirius Wu23 分钟前
如何防御TCP洪泛攻击
网络·网络协议·tcp/ip
林政硕(Cohen0415)29 分钟前
Linux下xl9535 gpio扩展芯片bug调试
linux·xl9535
OKay_J31 分钟前
Linux学习笔记(应用篇三)
linux·笔记·学习
HXQ_晴天33 分钟前
Linux 系统关机和重启指令
linux
EdmundXjs1 小时前
浅谈WebSocket-FLV
websocket·网络协议
creator_Li2 小时前
Linux下的socket演示程序3(udp)
linux·udp
roboko_3 小时前
Linux实现生产者消费者模型(基于阻塞队列)
linux·c++
AndrewPerfect3 小时前
怎么使用pm2启动和暂停后端程序(后端架构nodejs+koa)
linux·运维·服务器