HTTP协议系列(1)

时间:2023-03-08 17:12:23

一、为什么学习Http协议

      首先明白我们为什么学习HTTP协议,也就是说明白HTTP协议的作用。HTTP协议是用于客户端与服务器之间的通讯。明白了HTTP协议的作用也就知道了为什么要学习HTTP协议了。因为我们做WEB的都是在服务器端访问资源,浏览器就是我们的客户端,我们所呈现的界面还是资源都是访问服务器而展示出来的,所以说要学好WEB就要了解清楚HTTP协议有哪些作用及其功能,本篇还是大体上介绍HTTP协议,之后系列会详细来描述各个功能。

二、简单的Http协议

     我们现在知道HTTP协议是用于客户端与服务器之间的通讯的,那么他是怎么通讯的那?我们想象这样一个场景就会明白他是怎么通讯的,想访问百度的时候,就是在文本框内输入百度域名,这样就能访问百度了,这个写百度的域名就是一个请求,而展现出来的页面就是响应的结果,这就是HTTP协议的进行通讯的方式。明白这个以后我们就来看一下HTTP协议的请求和响应的内容。

HTTP协议系列(1)

HTTP协议请求报文我们先来看个例子:

HTTP协议系列(1)

HTTP协议系列(1)

以上二张图片可以看出请求报文文的基本内容包括请求方法,请求URL,协议版本,请求首部字段和内容实体。什么是请求报文的首部字段和内容实体我们在后面会具体先说明的这里先卖个官子,接下来我们看一下响应报文。

HTTP协议系列(1)

这个就是响应报文的基本内容,在状态我说一下200 OK这个是响应处理的结果的状态码和解释状态码的原因短语。消息头就是响应首部字段,响应正文就是实体主体。这块就简单的说到这里,剩下的还是在下面具体说说。

、HTTP协议的特点

1. HTTP协议是不保存状态的协议,即无状态协议,什么是无状态的协议尼,每一次的发送请求,就会有对应的新的响应产生,协议不能保存之前请求的报文信息,这就是无状态协议,可以你又会想到当在淘宝购物的时候他就可以保持登录的状态或者购物车呀,没错这里面引入了Cookie的技术,稍后我们在下面讲述。

2.持久连接指的是建立一次TCP连接后可以进行多次请求和响应的交互,这样做的好处就是减少了重复和断开的额外开销,减轻了服务器的压力,提升Web访问速度。

3.管线化这个说白一点就是多线程。

、HTTP协议请求的方法

      Get:获取资源

Get方法用来请求访问被URL识别的的资源。指定资源经过服务器解析后返回响应的内容。

POST:传输实体主体

POST方法主要用来传输实体的主体。

Put:传输文件

Put方法主要用来传输文件,要求在请求报文的主体中包含文件的内容,然后保存到请求URL指定的位置上。

Head:获取报文首部

Head方法和Get方法一样,只是不返回报文主体部分,用于确认URI的有效性及资源更新的日期。

Delete:删除文件

Delete用来删除文件,是与Put方法相反,用来请求删除URI删除的指定资源。

Options:询问支持的方法

Options方法用来查询针对请求URI指定的资源支持的方法(Put,Get)。

Trace:追踪路径

Trace方法是让Web服务器端将之前请求的还回给客户端的方法。----这个知道下就可以

Connect:要求用隧道协议连接代理

Conne方法要求在与代理服务器通讯时建立隧道,使用隧道协议进行TCP通信。主要使用SSL(安全套接层)和TLS(传输安全层)协议把通讯内容加密后经过网络隧道传输。---这些协议在下一篇进行讲解。

、HTTP协议使用Cookie进行状态管理

      Cookie会根据从服务端发送的请求报文头内的一个Set-Cookie的首部字段信息,通知客户端保存Cookie,当下次客户端在往服务器发送请求的时候,会自动在客户端请求报文的值加入Cookie的值发送过去,这时候服务器接收到客户端请求过来的Cookie后,会去检查从那个客户端发送出来的请求连接,然后会去服务器上对比记录,最后得到之前的状态信息。

、HTTP协议报文

     用于HTTP请求协议交互的信息被称为HTTP报文,客户端HTTP报文叫做请求报文,服务器端的HTTP报文叫做响应报文。下面是请求报文和响应报文的结构。

                                                           HTTP协议系列(1)

名词解释报文:是HTTP通讯中的基本单位,由8位字节流构成,通过HTTP通信传输。

实体:是由实体首部和实体主体组成。

、返回结果的状态码

    在响应报文的内容中会包含状态行,状态行包括状态码和状态码的简单描述,大致可以分为下面几类,我们最好在脑袋里面形成反射,看到那个数字就能确定他的范围。

HTTP协议系列(1)

接下来我们开始对每个内容进行详解,我做了一个思维导图东西大家可以看一下,这个基本属于就是记忆的东西。

HTTP协议系列(1)