浅谈HTTP

前言:从输入一个网址到你看到网页,这几秒钟时间内客户端和服务器端都搞了哪些动作?

        1、url解析  

        2、 域名解析  

        3、与源站建立TCP链接  

        4、发起真正的HTTP请求  

        5、 Web服务器应答,并向浏览器送数据  

        6、web服务器关闭TCP链接

1、HTTP的诞生

      19893月,HTTP诞生。基本理念:借助多文档之间相互关联形成的超文本,连成可相互参阅的万维网(World  Wide  Web)。现在已提出了三项WWW构建技术,分别是:把SGMLStandard Generalized  Markup  Language,标准通用标记语言)作为页面的文本标记语言的HTMLHyperText Markup Language,超文本标记语言);作为文档传递协议的HTTP;指定文档所在地址的URLUniform Resource Locater,统一资源定位符)。

       WWW这一名称,是Web浏览器当年用来浏览超文本的客户端应用程序时的名称。现在则用来表示这一系列的集合,也可简称为Web

扫描二维码关注公众号,回复: 1269776 查看本文章

2、HTTP的版本迭代

   HTTP/0.9

HTTP1990年问世。那时的HTTP没有作为正式的标准被建立。现在的HTTP其实含有HTTP1.0之前版本的意思,因此被称为HTTP/0.9

   HTTP/1.0

HTTP正式作为标准被公布于19965月,版本被命名为HTTP/1.0,并记载于RFC1945

   HTTP/1.1

19971月的HTTP/1.1是目前主流的HTTP协议版本。RFC2626就是当前的最新版本。

现在的HTTP被运用到各种场景中,不局限于Web框架下。

延伸:网络基础TCP/IP

通常使用的网络(包括互联网)是在TCP/IP协议族的基础上运作的,而HTTP属于它内部的一个子集。HTTP处于应用层,应用层决定了向用户提供应用服务时通信的活动。

 3、HTTP的应用

      HTTP协议用于客户端和服务器端之间的通信。请求访问文本或图像等资源的一端称为客户端,而提供资源响应的一端称为服务器端。

延伸HTTP是不保存状态的协议。协议自身不对请求和响应之间的通信状态进行保存,即不做持久化处理。HTTP/1.1虽然是无状态协议,但是为了实现期望的保持状态功能,于是引入了Cookie技术。有了Cookie再用HTTP协议通信,就可以管理状态了。

4、告知服务器意图的HTTP方法

GET:获取资源

POST:传输实体主体

PUT:传输文件

HEAD:获得报文首部

DELETE:删除文件

OPTION:询问支持的方法

TRACE:追踪路径

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

5、HTTP报文内的HTTP信息

HTTP报文:用于HTTP协议交互的信息。本身是由多行数据构成的字符串文本。

请求报文:请求端的HTTTP报文。

响应报文:响应端的HTTP报文。

HTTP报文大致分为报文首部和报文主体两块,中间用空行来划分。通常,并不一定要有报文主体。

6、返回结果的HTTP状态码

HTTP状态码负责表示客户端HTTP请求的返回结果、标记服务器端的处理是否正常、通知出现的错误等工作。

状态码的工作机制:

状态码的职责是当客户端想服务器端发送请求时,描述返回的请求结果,借助状态码,用户可以知道服务器是正常处理了请求,还是出现了错误。

1XX 信息性状态码(接收的请求正在处理)

2XX成功

200   ok(请求正常处理)

204   No content(请求处理成功,但没有资源可以返回)

206   Partial Content(对资源的一部分请求)

3XX 重定向

301  Moved Permanently(永久性重定向~资源的URL已更新)

302  Found (临时性重定向~URl临时更新)

303  See  Other (请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源)

304  Not Modified (资源已找到,但未符合条件请求,和重定向没有关系)

307  Temporary Redirect(临时重定向)

4XX客户端错误

400  Bad Request (请求报文中存在语法错误)

401  Unauthorized (发送的请求需要通过HTTPBASIC等认证,或者之前已进行过1次请求,则表示用户认证失败)

403  Forbidden(不允许访问那个资源,没有权限等等)

404  Not Found(服务器上没有请求的资源)

5XX  服务器错误

500  Interanl Server Error(服务器端在请求时发生了错误,或Web应用存在的bug或某些临时的故障)

503  Service Unavailable(表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求)

参考:《图解HTTP》


猜你喜欢

转载自blog.csdn.net/qq_39810861/article/details/79896966
今日推荐