http协议(1)概括

http协议(1)概括

“如果你在路上遇到岔路口,走小路(岔路)” --Linux Journal

HTTP(超文本传输协议)是在万维网上进行通信时所使用的协议方案。常用于web浏览器,web服务器之间的双工通信。

每天都有数以万计的用户在互联网上发送数据,接收数据,http可以从遍布全世界的web服务器上将这些信息块迅速,便捷,可靠地移到人们面前的web浏览器上去。

http使用的是安全可靠的数据传输协议,即使你从月球往地球发送数据,它也能确保数据在传输过程中不会被损坏或产生混乱。

在这里插入图片描述
web内容都是存储在web服务器上的。web服务器使用的http协议。因此经常被称为http服务器。在这里插入图片描述
客户端向服务器发送http请求,服务器会在http响应中回送所请求的数据。
在这里插入图片描述
浏览一个页面时,浏览器会向服务器发送一条HTTP请求。服务器去寻找查找的数据,如果成功,就将数据,数据类型,数据长度,以及其他一些信息放在http响应中发送给客户端。

web服务器是web资源的宿主。web资源是web内容的源头。web服务器不仅可以提供静态文件(文本文件,word文件,图片文件,电影文件…),也可以根据需要生成内容的软件程序(股票交易,房产数据,在线商店购买商品…)。所有的类型来源都属于一种资源。(公司销售的电子表格,因特网搜索引擎…)
在这里插入图片描述
因特网上有数千种不同的数据类型,http认真的给每种要通过web传输的资源都打上名为MIME类型(MIME type)的数据格式标签。
在这里插入图片描述
当web浏览器从服务器取出一个对象时,会去查看相关的MIME类型,判断是否知道该如何处理这个对象。
在这里插入图片描述
常见的MIME类型有数百个,实验性或用途有限的MIME类型则更多。(下面仅简单的列出几条)

  1. HTML格式的文本文档由 text/html 来标记。
  2. 普通的ASCII文本文档由 text/plain 标记。
  3. JEPG版本的图片为 image/jepg 类型。
  4. GIF格式的图片未 image/gif 类型。

资源标识符:URL(统一资源定位符)。URL描述了一台特定服务器上某资源的特定位置。
在这里插入图片描述
在这里插入图片描述
URN:URI的第二种形式。urn作为特定内容的唯一名称使用的,与目前所在资源地无关,使用这些与位置无关的urn,可以将资源四处搬移。(urn扔处于实验阶段,还未大范围使用)

HTTP事务:一个HTTP事务是由一条(从客户端发往服务器的)请求命令和一个(从服务器发往客户端的)响应结果组成。这种通信是通过名为HTTP报文的格式化数据块进行的。在这里插入图片描述
下图为一些常见的http方法。
在这里插入图片描述
HTTP状态码:没条http报文返回时都会携带一个状态码,状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否采取其他动作。
在这里插入图片描述
伴随着每个数字状态码,HTTP还会发送一条解释性的"原因语句"文本。

在这里插入图片描述
web页面中可以包含多个对象:应用程序完成一项任务时通常会发布多个HTTP事务。(浏览器执行一个事务来获取描述页面布局的html"框架",然后发布另外的http事务来获取每个嵌入式照片,图像等)

HTTP报文:
在这里插入图片描述
在这里插入图片描述
HTTP报文包括以下三部分:

  1. 起始行 : 报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。
  2. 首部字段 : 起始行后面有一个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。
  3. 主体 : 空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给web服务器的数据,响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体可以包含任意的二进制数据(如图片,音乐,视频,软件程序等),当前,主体也可以包含文本。

后续会详解,先做个了解。

在这里插入图片描述

  • HTTP连接
    • TCP/IP

HTTP是一个应用层协议,HTTP无需操心网络通信的具体细节,它把所有的细节都交给了通用,可靠的因特网传输协议TCP/IP。

  • TCP提供了:
    • 无差错的数据传输
    • 按序传输(数据总是按照发送的顺序到达)
    • 未分段的数据流(可以在任意时刻以任意尺寸将数据发出去)

只要建立了TCP连接,客户端和服务器之间的报文交换就不会丢失,不会被破坏,也不会在接收时出现错序。
在这里插入图片描述
HTTP协议位于TCP的上层。HTTP使用TCP来传输其报文数据。
在这里插入图片描述
在HTTP客户端向服务器发送报文之前,需要用网络协议地址和端口号在客户端和服务器之间建立一条TCP/IP连接。

怎么获取端口号和ip地址呢? 答案:通过URL

在这里插入图片描述

Telnet程序:

Telnet程序可以键盘连接到某个目标TCP端口,并将此TCP端口的输出回送到显示屏上,Telnet常用于远程终端会话,但他几乎可以连接所有的TCP服务器,包括HTTP服务器。

HTTP协议版本简单的了解下。(知道有这么回事就行)
在这里插入图片描述
在这里插入图片描述

  • Web的结构组件
    • 代理:位于客户端和服务器之间的HTTP中间实体。
    • 缓存:HTTP的仓库,使常用页面的副本可以保存在离客户端更近的地方。
    • 网关:连接其他应用程序的特殊web服务器。
    • 隧道:对HTTP报文进行盲转发的特殊代理。
    • Agent代理:发起自动HTTP请求的半智能Web客户端。

代理:web安全,应用集成以及性能优化的重要组成模块。(后面将详解)
在这里插入图片描述
缓存:web缓存或代理缓存是一种特殊的HTTP代理服务器。

网关:一种特殊的服务器,作为其他服务器中间实体使用。
在这里插入图片描述
隧道:隧道是建立连接之后,就会在两条连接之间对原始数据进行盲转发的HTTP应用程序。

HTTP隧道通常用来在一条或多条http连接上转发非http数据,转发时并不会窥探数据。

常见用途是通过http连接承载加密的安全套接字层流量,这样SSL流量就可以穿过只允许web流量通过的防火墙了。
在这里插入图片描述
Agent代理:代表用户发起http请求的客户端程序。(比如web浏览器)

而且还有很多自动代理,可以在无人监视的情况下发布http事务并获取内容。(如"网络蜘蛛",“web机器人等;后续会有详解”)
在这里插入图片描述

HTTP基本概括到这里就结束了,后续将讲解更多的HTTP相关协议内容。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一拖再拖 一拖再拖

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值