HTTP协议是一种什么协议(HTTP协议的原理)

HTTP,全称 HyperText Transfer Protocol,即超文本传输协议。它是互联网应用最为广泛的一种网络协议,我们平时浏览网页的时候就是使用HTTP协议。比如当你在浏览器中输入www.baidu.com访问百度网站的时候,你会注意到HTTP被自动添加在网页地址的开头变为http://www.baidu.com了。这表明你现在正在使用HTTP来获取这个网页。HTTP协议是基于TCP协议之上的,是Web浏览器和Web服务器之间的应用层协议。

HTTP由请求和响应构成,是一个标准的客户端服务器模型。HTTP协议永远都是客户端发起请求,服务器回送响应。 HTTP是一个无状态的协议。无状态是指客户机(Web浏览器)和服务器之间不需要建立持久的连接,这意味着当一个客户端向服务器端发出请求,然后服务器返回响应(response),连接就被关闭了,在服务器端不保留连接的有关信息。HTTP的无状态特性简化了服务器的设计,使服务器更容易支持大量并发的HTTP请求。每一次请求都是完全独立的,每个请求包含了处理这个请求所需的完整的数据。HTTP遵循请求(Request)/应答(Response)模型。客户机(浏览器)向服务器发送请求,服务器处理请求并返回适当的应答。所有HTTP连接都被构造成一套请求和应答。

HTTP请求方法

在HTTP通信中,每个HTTP请求报文都包含一个方法。用以告诉Web服务端需要执行什么具体的动作,这些动作包括:获取指定Web页面、提交内容到服务器、删除服务器上的资源文件等,这些HTTP请求报文中包含的方法被称为HTTP请求方法。其中,常用的HTTP请求方法有:

HTTP状态码

HTTP状态码(HTTP Status Code)是用来表示Web服务器响应http请求状态的数字代码。每当Web客户端(浏览器)向Web服务器发送一个HTTP请求时,Web服务器都会返回一个包含HTTP状态码的信息头用以响应浏览器的请求。这个代码是一个三位数字代码,作用是告知Web客户端此次的请求是否成功,或者是否要采取其他的动作方式。HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,共分为5种类型:

HTTP几种常见的状态码:

HTTP报文

HTTP报文可分为两种,一种是从Web客户端发往Web服务器的HTTP报文,称为请求报文(Request Message)。另外一种是从Web服务器发往Web客户端的报文,称为响应报文(Response Message)。

HTTP请求报文由四个部分组成:请求行、请求头部、空行、请求数据。

  1. 请求行:请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。比如:GET /data/info.html HTTP/1.1。
  2. 请求头部: HTTP的报文头,报文头包含若干个属性,格式为“属性名:属性值”,服务端据此获取客户端的信息。与缓存相关的规则信息,均包含在header中。
  3. 空行:它的作用是通过一个空行,告诉服务器请求头部到此为止。
  4. 请求数据:若方法字段是GET,则此项为空,没有数据。若方法字段是POST,则通常来说此处放置的就是要提交的数据。比如要使用POST方法提交一个表单,其中有user字段中数据为“admin”, password字段为123456,那么这里的请求数据就是 user=admin&password=123456,使用&来连接各个字段。

同样的,HTTP响应报文也由四部分组成:

  1. 响应行:一般由协议版本、状态码及其描述组成。比如 HTTP/1.1 200 OK。
  2. 响应头:主要是返回一些服务器的基本信息,以及一些Cookie值等。
  3. 空行:它的作用是通过一个空行,告诉客户端响应头部到此为止。
  4. 响应体:响应的消息体,请求需要得到的具体数据,可以为任何类型数据,一般网页浏览返回的为html文件内容。

HTTP协议工作原理

HTTP协议属于OSI模型中的第七层应用层协议,HTTP协议的主要应用就是WWW服务应用。下面就以WWW服务应用为例介绍HTTP协议的通信原理。

  1. 客户端Web浏览器输入需要访问的网址如www.baidu.com。
  2. Web浏览器请求DNS服务器把域名www.baidu.com解析成对应的IP地址。关于DNS解析原理流程可参考《通俗易懂讲解用户访问网站的基本原理过程》。
  3. Web浏览器将端口号(默认80端口)从访问地址URI中解析出来。
  4. Web浏览器通过解析后的IP地址及端口号与Web服务器之间建立一条TCP连接。
  5. 建立TCP连接后,Web浏览器发出读取文件(URI中域名后面部分对应的文件)向Web服务器发送一条HTTP请求报文。
  6. Web服务器响应并读取浏览器的请求信息,然后返回一条HTTP响应报文。
  7. Web服务器关闭HTTP连接,关闭TCP连接,Web浏览器显示访问的网站内容到屏幕。
(0)

相关推荐

  • Win10系统NetBIOS协议如何开启?Win10开启NetBIOS协议的方法

    NetBIOS协议有什么作用?Win10系统中的NetBIOS协议开启后,用户就可以在局域网中被发现并且找到该这台开启了NetBIOS协议的计算机,在安全风险上来说影响比较大,因为TA使用的是139端 ...

  • cpu散热器有几种规格(cpu散热器工作原理)

    CPU散热器是用作辅助CPU散热的一个配件,为CPU创造一个良好的散热环境,如果CPU散热器选择的不好,CPU就会为了自我保护不被烧坏,自动降低频率来减少发热,这会导致CPU性能下降,因此选择CPU散 ...

  • linux网络编程socket介绍

    一.概念介绍网络程序分为服务端程序和客户端程序。服务端即提供服务的一方,客户端为请求服务的一方。但实际情况是有些程序的客户端、服务器端角色不是这么明显,即互为客户端和服务端。 我们编写网络程序时,一般 ...

  • Linux操作系统配置IPv6地址最简单的方法

    IPv6是"Internet Protocol Version 6"的缩写,也被称作下一代互联网协议,它是由IETF设计的用来替代现行的IPv4协议的一种新的IP协议。那么linux操作系统如何配置景 ...

  • QQ远程对方黑屏或马赛克解决方法

    方法一: qq登陆协议的选择: 正常情况下,我们一般登陆时所使用的协议都是腾讯qq的udp协议,udp协议是一种无须面向连接的协议.她就好像是一个做媒不管成败的媒婆一样,只负责为需要连接的双方连接做连 ...

  • Cisco网络协议:EIGRP中生成默认路由的4种方法

    EIGRP的定义 EIGRP:Enhanced Interior Gateway Routing Protocol 即 增强内部网关路由线路协议。也翻译为 加强型内部网关路由协议。 EIGRP是Cis ...

  • Win10无法打开网站提示缺少一个或多个网络协议两种解决方法

    升级win10正式版的用户,大都遇到过无法打开网页问题.比如,有位win10用户就反馈,自己在浏览网页时,发现有时打开一些网站会打不开,且系统还会提示"缺少一个或多个网络协议".这 ...

  • VRRP虚拟路由器冗余协议介绍

    VRRP(VirtualRouterRedundancyProtocol,虚拟路由冗余协议)是一种容错协议。通常,一个网络内的所有主机都设置一条缺省路由,这样,主机发出的目的地址不在本网段的报文将被通 ...

  • https是什么意思?(安全超文本传输协议)

    在逛论坛的时候发现有网友说到IE打不开HTTPS的情况,在论坛上的留言发现有部分网友说到还不知道什么是HTTPS?那么HTTPS是什么意思?所以脚本之家就在这里跟大家详细讲解HTTP的具体含义。内容如 ...

  • 飞鱼星路由器的IP协议介绍

    一、IP协议:全称Internet Protocol(互联网协议),主要用于负责IP寻址、路由选择和IP数据包的分割和组装。通常我们所说的IP地址可以理解为符合IP协议的地址。目前,我们常用的IP协议 ...