HTTP概述

1.HTTP

HTTP全名超文本传输协议,是一个应用层协议,主要用于万维网中的信息传输。它被广泛地用于在web浏览器和web服务器之间传输文本、图像、视频、音频等。

2.web客户端和服务器

Web内容都是存储在web服务器上的,web服务器使用HTTP协议,所以web服务器也被称作HTTP服务器。HTTP客服端通过HTTP协议向HTTP服务器发送请求报文,HTTP根据不同的请求返回相应的HTTP响应报文。HTTP请求中包含了客户端对服务器中对象的请求,服务器收到该请求后会寻找相应的对象,如果成功,就会将其放在HTTP响应报文返回给客户端。

3.资源

Web服务器是web资源的宿主,web资源是web内容的源头。
最简单的web资源就是web服务器文件系统中的静态文件,这些文件可以包含任意内容:文本文件、HTML文件、图片、音频、视频等。
但资源不一定是静态文件,资源还可以是根据需要生成内容的软件程序。程序会根据请求的不同生成不同的动态内容。

a)媒体类型

HTTP使用MIME类型来标识通过web传输的各种文件的类型。web服务器会为所有HTTP对象附加一个MIME类型,当web客户端从服务器中取回一个对象时,会去查看对象的MIME类型来确定自己是否能够处理这个对象。
MIME类型是一种文本标记,表示一种主要的对象类型和一个特定的子类型,中间由一个斜杠来分隔。

text/html 标记HTML格式的文本文档
text/plain 标记普通的ASCII文本文档
image/jpeg 标记JPEG格式的图片
image/gif 标记GIF格式的图片

b)URI

每个web服务器都有一个名字,这样客户端可以通过这个名字来表明自己所请求的资源。服务器资源名被称为统一资源标识符(URI),URI类似邮政地址,在全网络范围唯一标识并定位信息资源。
URI有两种形式,URL和URN。

c)URL

统一资源定位符(URL)是资源标识符最常见的形式,URL描述了一台特定服务器上某资源的特定位置。
URL遵循特定的格式,分为三个部分:
第一部分称为方案,说明访问资源所使用的网络协议,通常为HTTP协议(http://)。
第二部分为服务器的英特网地址(域名或IP地址)。(例,www.abcd.com)
第三部分指定服务器上的某个资源。(例,/home/index.html)

c)URN

统一资源名(URN)作为特定内容的唯一名称,与资源的位置无关。URN仍处于试验阶段,尚未大范围使用。

4.事务

一个HTTP事务由一个请求命令和一个响应结果组成,这种通信通过名为HTTP报文的格式化数据块进行的。

a)方法

HTTP支持几种不同的请求命令,这些命令称为HTTP方法。每条HTTP请求都包含一个方法,这个方法会告诉服务器要执行什么动作(获取一个web页面、运行一一个网关程序、删除一个文件等)。下面列出几个常用的方法:

GET     从服务器向客服端发送命名资源
PUT     将来自客户端的数据存储到一个命名的服务器资源中
DELETE  从服务器中删除命名资源
POST    将客户端数据发送到一个服务器网关应用程序
HEAD    仅发送命名资源响应中的HTTP首部

b)状态码

每条HTTP响应报文返回时都会携带一个状态码,状态码是一个三位数字的代码,告知客户端请求是否成功,或者是否需要采取其他动作。
伴随每个数字状态码,HTTP还会发送一个解释性的“原因短语”文本,这个短语只用于进行描述,所有的处理过程都只与状态码相关。

5.报文

HTTP报文分为请求报文和响应报文,它们都是由以下三部分组成的,其中起始行和首部字段皆是文本行:

a)起始行

报文的第一行是起始行,在请求报文中用来说明要做些什么,在响应报文中表明出现什么情况。下面是典型格式:
请求:方法+URL+协议版本
响应:协议版本+状态码+原因短语

b)首部字段

起始行后面有零个或多个首部字段,每个首部字段包含一个名字和一个值,两者用冒号(:)分隔。首部以一个空行结束。

c)主体

空行之后就是可选的报文主体,其中包含所有类型的数据。请求主体中包含了要发送给服务器的数据,响应主体中装载要返回给客户端的数据。不同于起始行和首部字段都是结构化的文本行,主体可以包含任意的二进制数据(图片、音频、视频、程序),当然也可以包含文本。

6.web结构组件

a)代理

代理位于客服端和服务器之间,接受所有客服端HTTP请求,并将这些请求转发给服务器。对于用户来说,这些应用程序就是一个代理,代表用户访问服务器。代理可以对请求和响应进行过滤。

b) 缓存

web缓存或代理缓存是一种特殊的HTTP代理服务器,可以将经过代理传送的数据缓存下来,可以将这个副本直接返回给下一个请求该副本的客户。显然将那些会被频繁请求的web内容缓存在代理服务器中能够极大地提高客户端的访问速度。

c)网关

网关是一种特殊的服务器,作为其他服务器的中间实体使用。通常用于将HTTP流量转换成其他的协议。网关接受请求是就好像自己是资源的源端服务器一样。
HTTP客户端<–HTTP–>HTTP/FTP网<–FTP–>FTP服务器

d)隧道

隧道是建立起来之后,就会在两条连接之间对原始数据进行盲转发的HTTP应用程序。HTTP隧道通常用来在一条或多条连接上转发非HTTP数据,转发时不会窥探数据。
HTTP隧道常见用途是同过HTTP连接承载加密的安全套接字层(SSL)流量。这样SSL流量就可以通过只允许web流量通过的防火墙了。

e) Agent代理

用户代理是代表用户发起HTTP请求的客户端程序,所有发布web请求的应用程序都是HTTP Agent代理。web浏览器就是一种Agent代理。比如爬虫也是一种Agent代理。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值