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

发布于:2025-02-10 ⋅ 阅读:(29) ⋅ 点赞:(0)

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

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

目录

HTTP方法 

表单

重定向

Connection


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

——————以上就是本节全部内容哦, 如果对友友们有帮助的话可以关注博主, 方便学习更多知识哦!!!    


网站公告

今日签到

点亮在社区的每一天
去签到