HTTP协议系列(1)

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

一、为什么学习Http协议


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


二、简单的Http协议


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


1005447-20170104224002784-290735418.jpg

                                                                                 

    HTTP协议请求报文我们先来看个例子:                               1005447-20170104225507081-790755849.png                                

      1005447-20170104231125409-1172891682.png                                                          

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

     1005447-20170104231918269-831229252.jpg                                                        

     这个就是响应报文的基本内容,在状态我说一下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报文叫做响应报文。下面是请求报文和响应报文的结构。

       1005447-20170106164654706-44639441.png                                                  

 

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

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


、返回结果的状态码


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

      1005447-20170106170719972-1764668589.png                                                

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

  1005447-20170106175717175-226745843.png                                

相关文章
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
107 7
|
7天前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
48 15
|
2天前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
5天前
|
缓存 网络协议 算法
从零开始掌握HTTP协议
本文介绍HTTP协议的演变,从HTTP1.0到HTTP2.0。HTTP1.0为无状态连接,每次请求独立;HTTP1.1引入持久连接、管道化请求和更多状态码;HTTP2.0采用二进制分帧、多路复用、头部压缩及服务器主动推送,大幅提升性能与用户体验。了解这些区别有助于开发者优化应用和服务。
|
5天前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
35 1
|
1月前
|
开发者
HTTP 协议请求方法的发展历程
【10月更文挑战第21天】
|
1月前
|
Dubbo 安全 应用服务中间件
Apache Dubbo 正式发布 HTTP/3 版本 RPC 协议,弱网效率提升 6 倍
在 Apache Dubbo 3.3.0 版本之后,官方推出了全新升级的 Triple X 协议,全面支持 HTTP/1、HTTP/2 和 HTTP/3 协议。本文将围绕 Triple 协议对 HTTP/3 的支持进行详细阐述,包括其设计目标、实际应用案例、性能测试结果以及源码架构分析等内容。
|
1月前
|
安全 搜索推荐 网络安全
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
HTTPS协议是**一种通过计算机网络进行安全通信的传输协议
63 11
|
1月前
|
缓存 安全 网络协议
HTTPS协议的历史发展
HTTPS协议的历史发展
44 8
|
1月前
|
安全 应用服务中间件 Linux
判断一个网站是否使用HTTPS协议
判断一个网站是否使用HTTPS协议
57 4