Web开发我爱编程程序员

HTTP

2018-05-23  本文已影响60人  8e29c3f7ea8a
timg.jpg

HTTP定义

超文本传输协议 HTTP HyperText Transfer Protocol 是互联网上应用最为广泛的一种网络协议,所有的WWW文件必须遵守

OSI 七层模型

OSI是ISO制定的一个用于标准化计算机或通信系统间互联的标准体系。

OSI.png

HTTP 工作原理

URI和URL

URI:统一资源标识符

URL:统一资源定位符

与URI相比我们更熟悉URL,URL是使用浏览器等访问web页面的时候需要输入的网页地址

URI是更通用的资源标识符,URL是它的一个子集

URI由两个主要的子集构成

URL

URI 是 Uniform Resource Identifier 的缩写

综上所述,URI就是某个协议方案表示的资源的定位标识符,协议方案是指访问资源所使用的协议类型名称

采用HTTP协议的时候,协议方案就是http,除此之外还有ftp、mailto、file等。

URL 格式

主要由三部分组成

通用的URL由9部分组成

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<hash>

对于web页面来说最常用的协议就是httphttps

user和password现在不常见了,不会在URL明文书写用户名和密码了,都是通过登录的方式

主机可以是IPO地址过着域名

端口号用来区分主机上的进程,方便找到web服务器,http默认是80

path是资源的路径,也就是存放位置,不一定和物理路径完全对应,符合web服务器路由约定即可

params,在一些协议中需要参数来访问资源,例如ftp是二进制还是文本传输,参数是名值对,用;隔开

query:这个是get请求最常用的传递参数方式了 ?a=1&b=2&=3

hash也成为片段,设计为标识文档的一部分,很多MVVM框架用作了路由功能

相对URL

相对URL是URL一部分,从路径开始,使用当前文档的设置

./image/logo.png
../script/a.js
/css/main.css

HTTP 协议有几种和服务器交互的方法

GET:获取资源

GET方法用来请求访问已被URL识别的资源

POST:传输实体主体

POST方法用来请求服务器传输信息实体的主体

PUT:传输文件

PUT要求在请求报文的主体中包含文件内容,然后保存到请求URL指定的位置。

处于安全考虑,一般web网站不使用此方法,若配合web的安全验证机制,或者架构采用REST标准的网站,就可能开放使用此方法

HEAD:获得报文首部

HEAD和GET方法一样,只不过不返回报文主体部分,用于确认URI的有效性及资源更新的日期时间等

DELETE:删除文件

DELETE是与PUT相反的方法,是按请求URI删除指定的资源

处于安全考虑,一般web网站不使用此方法,若配合web的安全验证机制,或者架构采用REST标准的网站,就可能开放使用此方法

OPYIONS:询问支持的方法

用来查询针对请求URI指定的资源支持的方法

TRACE:追踪路径

是让web服务器端将之前的请求通信还回给客户端的方法发送请求时,在Max-Frowards首部字段中填入数值,每经过一个服务器端就-1,当数值为0时,停止传输,最后收到服务器返回状态码200 OK的响应。

但是,这种方法基本很少使用,而且很容易引起XST(跨站追踪)攻击,就更不会用到了。

CONNECT:要求采用隧道协议连接代理

该方法要求在于代理服务器通信时建立隧道,实现用隧道协议进行TCP通信,主要使用SSL(安全套接层)和TLS(传输层安全)协议把通信内容加密后经过网络传输。

Status Code

完整的 HTTP 1.1规范说明书来自于RFC 2616,HTTP 1.1的状态码被标记为新特性,用来表示请求的结果,状态码被分为五大类:

常见状态码

200

OK 一切正常,对GET和POST请求的应答文档跟在后面。

206

Partial Content 客户发送了一个带有Range头的GET请求,服务器完成了它(HTTP 1.1新)

301

Moved Permanently 客户请求的文档在其他地方,新的URL在Location头中给出,浏览器应该自动地访问新的URL。

304

Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告 诉客户,原来缓冲的文档还可以继续使用。

404

Not Found 无法找到指定位置的资源。这也是一个常用的应答。

403

Forbidden 资源不可用。服务器理解客户的请求,但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。

500

Internal Server Error 服务器遇到了意料不到的情况,不能完成客户的请求。

502

Bad Gateway 服务器作为网关或者代理时,为了完成请求访问下一个服务器,但该服务器返回了非法的应答。

504

Gateway Timeout 由作为代理或网关的服务器使用,表示不能及时地从远程服务器获得应答。(HTTP 1.1新)

报文

组成

HTTP报文是简单的格式化数据块,每个报文都包含一条来自客户端的请求或者一条来自服务器的响应,由3个部分组成

HTTP报文分两类

请求报文
响应报文

通用首部

通用首部.png

请求首部

请求首部.png

响应首部

![timg.jpg](https:https://img.haomeiwen.com/i10758861/27a1d1bbb623c125.jpg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
上一篇下一篇

猜你喜欢

热点阅读