美文网首页
HTTP相关基础概念和错误码

HTTP相关基础概念和错误码

作者: kim_jin | 来源:发表于2018-09-11 14:28 被阅读0次

    基本概念

    • 代理:位于客户端和服务器之间的HTTP中间实体
    • 缓存:HTTP的仓库,使常用的页面的副本可以保存在离客户端更近的位置
    • 网关:链接其他应用程序的特殊的web服务器
    • 隧道:对HTTP通信报文进行盲转发的特殊代理
    • Agent代理:发起HTTP请求的半智能web客户端

    代理

    代理的原理

    代理位于客户端和服务器之间,接受了所有的HTTP的请求,并将这些请求发送给服务器(也可能会对请求进行修改然后再进行发送)。在安全的角度来看,通常会将代理作为转发所有的web流量的可信的中间节点进行使用,因为代理可以对一些请求和响应进行过滤。

    缓存
    web缓存或是代理缓存,是一种特殊的HTTP代理服务器,可以将进过代理传送为常用文档复制保存起来,下一次请求同一个文档就可以享受缓存的私有副本所提供的服务了。

    保存常用的文档的副本来提高性能的代理缓存

    网关
    也是一种特殊的服务器,作为其他服务器的中间实体来使用,通常的作用是将HTTP流量转换成其他的协议。网关在接受请求的时候,就好像自己是自愿服务器一样,客户端可能并不知道自己是在和一个网关进行通信。

    HTTP/FTP网关

    隧道

    隧道是建立起来后,就会在两条链接之间对原始数据进行盲转发的HTTP应用程序。HTTP隧道通常用来在一跳或是多条HTTP链接上转发非HTTP数据,而且在转发的时候是不会进行数据的窥视的。
    我们经常使用HTTP隧道来:通过HTTP连接承载加密的安全套接字层流量,这样的话SSL流量就可以穿过仅仅允许web流量通过的防火墙了。

    隧道可以在非HTTP网络上转发数据

    Agent代理

    用户Agent代理是代表用户发起HTTP请求的客户端程序,所有发布web请求的应用程序都是HTTP Agent代理。比如:有些自己会在web上闲逛的自动Agent代理,可以在无人监听的情况下发布HTTP的事物或是获取内容。

    自动搜索引擎的网络蜘蛛,可以从世界范围获取web页面

    HTTP报文

    举个栗子:如果说HTTP是因特网的信使,那么HTTP就是它用来搬东西的包裹。
    HTTP报文是在HTTP应用程序之间发送的数据块,这些数据块以一些文本形式的元数据开头,这些信息描述了报文的内容和含义。

    报文流入源服务器并回流回客户端

    报文的组成部分

    报文由三部分组成:对报文进行描述的起始行(有首部header,以及可选的数据主体body)

    HTTP报文的三部分

    报文的语法
    HTTP报文分类:请求报文(request message)和响应报文(response message
    请求报文:向web服务器请求一个动作
    响应报文:会将请求的结果返回给客户端

    请求和响应报文的HTTP事务

    方法:
    GET:从服务器获取一份文档
    HEAD:只从服务器获取文档的首部
    POST:向服务器发送需要处理的数据
    PUT:将请求的主体部分存储到服务器上
    TRACE:对可能经过代理服务器传送到服务器上的报文进行追踪
    OPTIONS:决定可以在服务器上执行哪些方法
    DELETE:从服务器上删除一份文档

    GET
    客户端用GET方法发送一次HTTP的请求

    GET示例

    HEAD
    HEADGET的请求行为很类似,但是服务器仅仅会返回首部,不会返回实体的主体部分。
    使用HEAD的应用场景:

    • 在不获取资源的情况下了解资源的情况(判断类型)
    • 通过查看响应中的状态码,看看某个对象是否存在
    • 查看首部,看一下资源是否被修改了
    HEAD示例

    PUT(更新)
    GET从服务器读取文档相反,PUT方法是向服务器写入文档。PUT的本意是让服务器用请求的主体部分创建一个由所请求的URL命名的新文档。如果原来的URL已经存在的话,就用这个主体来代替。

    PUT示例

    POST
    POST方法的初衷是向服务器发送数据,实际上我们用它来支持HTML的表单。

    POST示例

    TRACE
    当客户端发送一个请求的时候,这个请求可能要穿过防火墙、代理、网关或是其他的一些应用程序。在这个过程中,每一个节点都可能改变原始的HTTP请求,TRACE方法允许客户端在最终将请求发给服务器的时候,看看它变成了什么样。

    TRACE示例

    OPTIONS
    OPTIONS方法请求web服务器告知其支持的各种功能,可以查询浏览器支持哪些方法,或者对某些资源支持哪些方法。

    OPTIONS

    DELETE
    DELETE所做的就是删除指定服务器删除请求URL所指定的资源,但是客户端是无法确定删除的操作一定会被执行,因为HTTP规范允许服务器在不告知客户端的情况下撤销请求。

    DELETE示例

    状态码

    100~199 --信息性状态码

    信息性状态码

    200~299 --成功状态码

    成功的状态码

    300~399-- 重定向状态码
    重定向状态码要么告知客户端使用替代未知来访问客户端感兴趣的资源,要么就是提供一个替代的响应而不是资源的内容。如果资源被移动了,可以发送一个重定向的状态码和一个可选的location首部来告诉客户端资源已经被移动了,以及现在在哪里可以找到。

    将请求重定向到新的位置

    304:比较常用的,比如说客户端发送了一个特殊的If-Modified-Since首部,在这个日期之后,如果这个文档没有进行修改过,服务器就会返回一个304的状态码。

    重定向为使用本地副本的请求 重定向状态码 重定向的状态码

    其实302,303,307在功能上是有一些交叉的,出现这么多主要是为了兼容HTTP的版本
    400~499客户端的错误

    客户端错误 客户端错误

    500~599服务器错误状态码


    服务器错误 服务器错误

    相关文章

      网友评论

          本文标题:HTTP相关基础概念和错误码

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