HTTP协议-HTTP\1定义

2019-09-20  本文已影响0人  Wu杰语

序言

今天这篇小文,我们从HTTP协议本身和浏览器发送一个HTTP请求两个角度来学习一下HTTP\1协议。

HTTP是什么

HTTP的全拼是Hyper text transfer protocol 。按照协议去理解:

http定义

一个HTTP请求定义如下:

HTTP-message = start-line *( header-field CRLF ) CRLF [ message-body ]
  • start-line = request-line / status-line
          • request-line = method SP request-target SP HTTP-version CRLF
          • status-line = HTTP-version SP status-code SP reason-phrase CRLF
  • header-field = field-name ":" OWS field-value OWS
          • OWS = *( SP / HTAB )
          • field-name = token
          • field-value = *( field-content / obs-fold )
  • message-body = *OCTET

如上是基于ANBF的HTTP定义
例如说下面的实例图可以对照定义看一下:


image.png
http方法

http1.1规定了八种方法

HTTP 状态码
状态码 含义
1** 信息,服务器收到请求,需要请求者继续执行操作
2** 成功,操作被成功接收并处理
3** 重定向,需要进一步的操作以完成请求
4** 客户端错误,请求包含语法错误或无法完成请求
5** 服务器错误,服务器在处理请求的过程中发生了错误

这里特别说明一下重定向,这个功能特别有用。

HTTP URL与DNS

protocol :// hostname[:port] / path / [;parameters][?query]#fragmen
URL定义如上,细节就不再解释了。关键是下面的DNS系统。

当用户填写URL时,会填写hotsname,hostname如果是ip,则不方便,就发展处DNS系统。DNS系统是一个高性能、高可用的系统,可给用户查询ip地址和端口,过程如下:

在这个机制下,可以使用域名服务器作为首层负载均衡,可以注册多个地址,DNS
服务器根据一定的算法分配一个应用服务器访问。同时,可以为了安全考虑,DNS注册不同的地方的应用服务器,设计一个异地多活系统。

小结

今天讲的是HTTP协议的主要部分,URL、HTTP定义、HTTP方法、HTTP状态码,可以看到这个层面知识点不少。但是在实际的工程使用中,怎样使HTTP达到高性能,达到工程商用的标准,下一讲我们继续看HTTP\1扩展出来的只是。

上一篇 下一篇

猜你喜欢

热点阅读