什么是HTTP(超文本传输协议)?

Hypertext Transfer Protocol HTTP 是一种用于传输网页及其内容(如HTML、图像、JavaScript、CSS等)的协议。HTTP用于客户机-服务器模型中,其中通信通常由客户机启动,服务器端响应客户机请求。

null

HTTP历史记录

HTTP是1989年由 Tim Berners-Lee 他是欧洲核子研究中心的工作人员。提议的项目名称是 World Wide Web . Word-Wide-Web是一个可以在全球范围内共享和使用的计算机网络和资源。HTTP和HTML是万维网(简称WWW)的核心协议。HTTP是资源的传输协议,HTML是资源的格式和协议。

HTTP的第一个文档版本是1991年发布的0.9。第一个主要版本HTTP1.0是1996年发布的。HTTP1.0是在RFC 1945年正式推出的。这个版本很快就得到了web浏览器的支持。

HTTP的第二个版本编号为 HTT1.1 它为版本1.0提供了很多更新。HTTP 1.1在1997年以RFC 2068的形式提供。随着时间的推移,随着2014年新实现的需要,出现了多个RFC,如RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235。

HTTP 2.0 是在2015年发布的,这是一个很大的变化得到了HTTP协议。大多数主流浏览器在短时间内加入了HTTP2.0标准。http2.0协议主要基于Google的SPDY(Speedy)协议。

甚至还没有正式发布 HTTP 3.0 已经准备好了。HTTP主要是基于UDP协议的,也被称为 HTTP over QUIC

HTTP术语

在开始解释HTTP及其工作原理之前,让我们先提供一些术语及其含义。

HTML 是一种简单的文本资源识别语言。HTML使用通常在浏览器中以可视方式表示的标记。

Web Browser 是一个GUI客户端应用程序,在该应用程序中,可以使用url或网站地址启动HTTP请求,并使用JavaScript打印或执行返回的HTML响应。

相关文章: 什么是HTML5?

URL is是一种寻址方案,其中可以寻址不同类型的资源,通常是HTTP的web页面、javascript文件、图像文件等。

JavaScript 是一种动态脚本语言,主要用于客户端,在浏览器中为给定的网页运行。

Web Server 是一个服务器端系统,它根据客户端的请求提供不同的web资源。web服务器运行守护程序以快速响应。Web浏览器与Web服务器之间的通信协议采用HTTP协议。

HTTP是如何工作的?

HTTP作为客户端和服务器端的协议,负责从Web服务器请求传输HTML、JavaScript、图像、CSS等数据。我们可以在下面一步一步地看到一个简单的HTTP会话。

  • 首先,用户将URL放入web浏览器的地址栏中,然后按回车键。
  • HTTP将此请求传输到Web服务器。
  • web服务器将解析HTTP请求,并通过提供请求的资源来尝试实现它。
  • web服务器将在以下步骤中返回HTML、JavaScript、图像、CSS和其他资源。
  • web浏览器将显示并执行返回的资源,如HTML、JavaScript、Image、CSS等。
图片[1]-什么是HTTP(超文本传输协议)?-yiteyi-C++库
HTTP的工作原理

HTTP请求

HTTP通信通过请求启动。然后对返回的响应进行解析,并根据响应的内容启动新的请求。下面是一个向poftut.com发出的HTTP请求示例。

获取/HTTP/1.1 主持人:www.poftut.com 连接:保持活动 缓存控制:最大年龄=0 升级不安全请求:1 用户代理:Mozilla/5.0(Windows NT 10.0;Win64;x64)AppleWebKit/537.36(KHTML,如Gecko)铬/80.0.3987.149 Safari/537.36 Sec Fetch Dest:文档 接受:text/html、application/xhtml+xml、application/xml;q=0.9,图像/webp,图像/apng, / ;q=0.8,申请/签字交换;v=b3;q=0.9 Sec获取站点:无 秒获取模式:导航 秒获取用户:?1 接受编码:gzip、deflate、br 接受语言:en-US,en;q=0.9

相关文章: Php-语法概述

让我们检查一下这个HTTP请求。

GET / HTTP/1.1 是HTTP请求动词或方法,仅表示获取位于 / 使用http1.1协议。

Host: www.poftut.com 是我们要连接的网站、域或web服务器 www.poftut.com

User-Agent 指定web浏览器名称和版本

Accept 指定web浏览器可以接受的资源类型。

HTTP响应

HTTP Response 是根据请求返回给客户机的响应。HTTP响应通常提供一些HTML代码或图像文件或CSS代码或JavaScript代码。

HTTP/1.1 200 OK  Server: nginx/1.14.0 (Ubuntu) Date: Sun, 22 Mar 2020 10:17:40 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive Vary: Accept-Encoding X-UA-Compatible: IE=edge Link: <https://www.poftut.com/wp-json/>; rel="https://api.w.org/" Content-Encoding: gzip 

HTTP/1.1. 200 OK 表示响应协议版本为1.1,200是OK请求成功完成的HTTP状态码。

Server 是具有操作系统名称的远程服务器软件名称和版本。

Data 是创建响应的日期和时间。

Content type 是响应内容类型,在本例中为HTML,采用UTF-8编码。

HTTP谓词或请求方法

HTTP提供了一些动词或者换句话说 Request Methods 为了实现不同风格的HTTP请求。

HTTP GET 用于获取指定资源的表示形式。GET方法只用于获取远程网站内容,而不在远程网站上进行更改。

HTTP HEAD 类似于get,但只返回HTTP头或信息,不包含正文。

HTTP POST 用于将一些数据发送到远程web服务器,在该服务器中,通常客户端用户输入被发送到请求主体内的web服务器。

HTTP PUT 是一种将信息放入远程web服务器的方法。信息是通过URI或URL提供的,而不是通过正文。

相关文章: 如何在Fedora、CentOS、RHEL Linux上安装Apache2.4和PHP7.3?

HTTP DELETE 将删除在最终用户的web体验期间通常不使用的指定远程资源。

HTTP TRACE 将跟踪中间服务器之间的更改。这种方法不太流行。

HTTP OPTIONS 将返回远程服务器支持的方法。

HTTP CONNECT will通常用于连接代理服务器和创建HTTP隧道。

HTTP PATCH 用于修补或部分修改不太流行的远程资源。

HTTP状态代码

每一个HTTP请求都返回一个调用 HTTP Status Code . 此状态代码指定请求的完成状态,如成功、失败、服务器错误等。

信息 1XX 101、102等状态码用于向客户机提供有关请求的一些信息。

Successful 2XX 像200202这样的状态码用于提供请求成功完成的信息。

Redirection 3XX 状态码(如300、302)用于将客户机重定向到不同的URI或地址。

Client Error 4XX 像400、404这样的状态码用于通知客户机存在与请求相关的错误。

Server Error 5XX 像503这样的状态码用于通知客户机存在与服务器相关的错误,该错误阻止请求完成。

安全HTTP或HTTPS

HTTP协议是作为明文协议创建的,其中没有考虑安全性。但是随着网络安全线程的增加,HTTP协议变得非常脆弱。SSL/TLS隧道是为HTTP通信量创建的,用于加密通信量。带有SSL/TLS的HTTP称为HTTPS简单安全的HTTP。事件一个常规的HTTP流量可以被窃听和轻松读取HTTPS流量可以以一种有意义的方式读取,以获取有关流量的信息。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享