美文网首页
HTTP协议-HTTP\1定义

HTTP协议-HTTP\1定义

作者: Wu杰语 | 来源:发表于2019-09-20 19:09 被阅读0次

    序言

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

    HTTP是什么

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

    • protocol:首先这是一个协议,是个约定,确定计算机交流的通信规范以及各种控制和错误处理方式。
    • transfer:这是一个传输协议,其基于TCP或者UDP,将信息从一个地方传送到另外一个地方。并且传送过程中允许代理。
    • hyper text:超文本,传送包括文本,音频,视频等。
    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规定了八种方法

    • GET 获取读取资源
    • HEAD 获取资源的源信息
    • POST向资源提交数据,写入上传数据
    • PUT向资源提交数据,返回无body
    • DELETE删除
    • CONNECT 建立特殊连接隧道
    • OPTIONS 列出对资源实行的方法
    • TRACE 列出请求响应的传输路径
    HTTP 状态码
    状态码 含义
    1** 信息,服务器收到请求,需要请求者继续执行操作
    2** 成功,操作被成功接收并处理
    3** 重定向,需要进一步的操作以完成请求
    4** 客户端错误,请求包含语法错误或无法完成请求
    5** 服务器错误,服务器在处理请求的过程中发生了错误

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

    • 例如现在网站都基本要求用https访问,而用户输入http,服务器可以返回301,并指向https的URL。
    • 负载均衡。用户向负载均衡服务器发送请求,负载均衡服务器计算出一个请求服务器地址,然后给用户返回301和新的地址,用户接着访问新的地址。这种方式不太常用。
    HTTP URL与DNS

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

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

    • 输入URL后,浏览器先访问本地缓存,找到就下一步。
    • 查询根域名,根域名服务器给出顶级域名服务器地址
    • 查询顶级域名服务器,给出权威域名服务器地址。
    • 权威域名服务器给出具体的地址。

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

    小结

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

    相关文章

      网友评论

          本文标题:HTTP协议-HTTP\1定义

          本文链接:https://www.haomeiwen.com/subject/izcvectx.html