HTTP相关知识

Hypertext transfer protocol(简称:HTTP超文本传输协议HTTPWWW(world wide web 万维网)在一个超文本里面包含超链接的数据通信的基础。

HTTP的发展起始于1989年被 Tim Berners-LeeCERN创立。HTTP标准的发展是被IEIF(Internet Engineering Task Force)W3C (world wide web consortium)调整,并在提出 RFCs(request for comments)后达到了顶点。

HTTP的第一个修订版HTTP/1.1,在1997被广泛应用,不过 在 1999 年被 RFC 2616废弃,之后在2014年又出现了 RFC 7230

稍后,在2015年,提出了 继任者HTTP/2(之后的继任者是HTTP/3, 建立在 HTTP/2之上),现在被大部分主要的web服务器和浏览器通过 TSL(Transport Layer Security 传输层安全协议)使用ALPN (Application-Layer Protocol Negotiation 应用层协议协商)扩展支持的。

1、技术介绍

HTTP方法作为一个请求-响应客户端-服务器计算模式。举例,比如一个web浏览器,或者是一个客户端应用程序运行在拥有网站域名的电脑主机上。客户端发起一个 HTTP request 请求,提供资源比如 HTML或者其他资源或代表客户机执行其他行为的一个服务器,返回一个response message响应的消息给客户端。返回的响应信息包含了请求的完整信息状态和或许会包含请求的内容

浏览器就是一个用户代理(user agent 简称 UA)。其他的用户代理包括,搜索提供服务的索引浏览器(web爬虫),语音浏览器,移动apps和其他软件,访问、消耗或者展示 网页内容。

HTTP被设计去允许网络中间件元素去提高或者加强客户端和服务器之间的通信。高并发的网站经常受益在那些传递在上层服务器提高响应时间的web cache(网页缓存)上。网页浏览器缓存之前获取到的资源然后再减少网络拥堵的时候重复使用这些资源。在私有网络边界的HTTP代理服务器能够促进和通过额外的服务器传递消息的客户端的通信。

HTTP是一个设计在互联网协议套件Internet protocol suite)里的一个应用层协议。它的定义内容假一个潜在的可靠的传输层协议transport layer protocol 简称 TLP )和 传输控制协议Transmission Control Protocol 简称 TCP)被普遍应用。然而,HTTP可以被适用于不可靠额协议比如用户数据报协议 (User Dategram Protocol 简称 UDP),比如,HTTPU 通用即用即插简单的服务发现协议 (Simple Service Discovery Protocol 简称 SSDP)

HTTP资源利用URLs 统一资源存放器(Uniform Resource Locators)定义和存放在网络上,利用URL‘s(Uniform Resource identifiers)统一资源标识符 http 和 https。比如:包含所有的可选择的组件:

[外链图片转存失败(img-hsc38fMd-1564190968738)(assets/1559022847926.png)]

URLs在HTML 文档中被解码为超链接,所以成为了相关联的超文本文档。

HTTP/1.1是在原来HTTP(HTTP/1.0)的一次版本更新,在HTTP/1.0,每一次请求服务器资源,都要单独发一次请求连接。在HTTP/1.1,可以在页面被发布后,重复使用一个请求连接去请求下载图片,脚本和样式表等。

2、历史

术语 hypertext最早在1985年被Ted Nelson 提出,反而在1930年的 vannevar Bush 的基于微缩胶卷的信息检索和管理的“memex”系统所激励。后来Berners-Lee和他的团队发明的最初的HTTP, 还有Html和相关的网页服务器和基于文本的网页浏览器的相关的技术,终于被认可。

Broners-lee在1989年 第一次提出了 “worldWideWeb”项目,也就是现在著名的 World Wide Web。第一个版本的协议只有一个方法:GET, 可以从一个服务器请一个页面,从服务器返回的一直是一个页面。

第一个注明的HTTP版本是 HTTP V0.9, Dave Raggett 创建HTTP工作小组(HTTP WG),打算扩大协议扩展业务,扩大谈判,丰富媒体元信息,尝试使用一个安全协议,后来通过增加额外的方法和消息头变得更加有效率。RFC 1945官方介绍和发布认证HTTP V1.0 在1996;

HTTP WG 打算在1995年12月发布一些新的标准和对基于开发中的RFC2068的预标准HTTP/1.1提供支持,并在1996早期就被大部分浏览器开发者适用认可。同年三月,预标准 HTTP/1.1 被大部分浏览器支持。

发展历程:

  • RFC 7230, HTTP/1.1: Message Syntax and Routing
  • RFC 7231, HTTP/1.1: Semantics and Content
  • RFC 7232, HTTP/1.1: Conditional Requests
  • RFC 7233, HTTP/1.1: Range Requests
  • RFC 7234, HTTP/1.1: Caching
  • RFC 7235, HTTP/1.1: Authentication

HTTP/2 作为 RFC 7540 在2015年五月发布。

年份 HTTP 版本
1991 0.9
1996 1.0
1997 1.1
2015 2.0
2018 3.0

3、HTTP session 会话

一个HTTP回话是一系列网络请求-响应失误。一个HTTP客户端通过一个特殊的服务器端口(一般是80,偶尔是8080)建立一个TCP 连接 。一个HTTP server 监听这个端口等待客户端发出请求信息。一旦是收到请求,服务器返回一个状态码:比如 “HTTP/1.1 200 OK”和它自己的消息。此消息的正文一般是请求的资源,或者也许可能是一些错误消息或者其他信息。

[外链图片转存失败(img-vMsZD46g-1564190968740)(assets/1559027962666.png)]

3.1 持续连接

HTTP/0.91.0,每一次单独请求/响应后,连接会被关闭。在 HTTP/1.1,一个 keep-alive-mechanism 保持存活机制被介绍,多次单个请求可以共用一个连接通道。这样的持续的连接明显地减少请求延迟时间,因为客户端在第一个请求发出去之后不需要重新谈判和TCP进行三次握手的连接。一般的,连接因为TCPslow-start机制变得更加快速。

3.2 HTTP 会话状态

HTTP是一个无状态协议。一个无状态的协议不会要求HTTP 服务器在多个请求中去保存每一个用户的信息或者状态。但是,一些网页应用程序实现状态或者服务器端会话用做HTTP cookie 或者隐藏在网页表单里的变量。

4、HTTP authentication 认证

HTTP 提供多种验证方案如:基本的 访问验证消化访问验证,通过质问-验证机制凭借服务器标识符和在提供其请求内容之前提出一个质问权限的操作。

Authentication realms 身份验证领域

HTTP身份验证规范提供了一个任意的,实现指定的构造,用于划分单独的资源到一个公共的给定的Root URL; 这个realm值是一个字符串,如果存在,一定是和规范的root URL结合来保护空间抵抗挑战。在一个根目录下,可以单独定义不同的认证作用域。

5、Message format 消息格式

客户端和服务器之间的通信靠发送纯文本消息(ASCII)。客户端发送到服务器,服务器发送响应信息;

5.1 request message 请求消息

请求的消息有以下组成部分:

  • 一个 请求命令行 ,比如 (GET /images/logo.png HTTP/1.1)
  • 请求头 request header fields
  • 一个空行
  • 一个可选择的消息正文
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容