超文本传输协议-HTTP

    超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

    设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。

协议概述

    HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)。我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源,比如HTML文件和图像。我们称这个应答服务器为源服务器(origin server)。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunnel)。

    尽管TCP/IP协议是互联网上最流行的应用,HTTP协议中,并没有规定必须使用它或它支持的层。事实上,HTTP可以在任何互联网协议上,或其他网络上实现。HTTP假定其下层协议提供可靠的传输。因此,任何能够提供这种保证的协议都可以被其使用。因此也就是其在TCP/IP协议族使用TCP作为其传输层。

    通常,由HTTP客户端发起一个请求,创建一个到服务器指定端口(默认是80端口)的TCP连接。HTTP服务器则在那个端口监听客户端的请求。一旦收到请求,服务器会向客户端返回一个状态,比如”HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其它信息。

请求方法

    HTTP/1.1协议中共定义了八种方法(也叫“动作”)来以不同方式操作指定的资源:

    GET向指定的资源发出“显示”请求。使用GET方法应该只用在读取数据,而不应当被用于产生“副作用”的操作中,例如在Web Application中。其中一个原因是GET可能会被网络蜘蛛等随意访问。参见安全方法

    HEAD与GET方法一样,都是向服务器发出指定资源的请求。只不过服务器将不传回资源的本文部分。它的好处在于,使用这个方法可以在不必传输全部内容的情况下,就可以获取其中“关于该资源的信息”(元信息或称元数据)。

    POST向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。数据被包含在请求本文中。这个请求可能会创建新的资源或修改现有资源,或二者皆有。

    PUT向指定资源位置上传其最新内容。

    DELETE请求服务器删除Request-URI所标识的资源。

    TRACE回显服务器收到的请求,主要用于测试或诊断。

    OPTIONS这个方法可使服务器传回该资源所支持的所有HTTP请求方法。用’*’来代替资源名称,向Web服务器发送OPTIONS请求,可以测试服务器功能是否正常运作。

    CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。通常用于SSL加密服务器的链接(经由非加密的HTTP代理服务器)。

    方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed),当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。

    HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当匹配下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。例如:

    PATCH(由 RFC 5789 指定的方法)用于将局部修改应用到资源

原创文章,作者:HGG,如若转载,请注明出处:http://www.178linux.com/83466

(1)
HGGHGG
上一篇 2017-07-31 07:59
下一篇 2017-07-31 09:54

相关推荐

  • Linux-raid的工作原理与管理

    本章内容:        1、RAID详细描述        2、mdadm 工具        3、创建raid        4、磁盘阵列的管理 RAID描述:     &nb…

    2017-06-24
  • 脚本的进阶与一些基本脚本

    1,脚本中用于表示数字大小写和符号为: -gt(大于)-lt(小于)-ne(不等于)-eq(等于) 格式为 [[空格 ”符号”空格]] 2,测试文件类型的选项 -f(是否为普通文件)-l(是否为链接文件)-d(是否为目录)-e(单独测试文件是否存在) 3,if语句的格式:(其中path代表条件,elif链接多个条件,最后一个条件用else表示) if pat…

    Linux干货 2017-05-22
  • RAID各级别特性介绍

        RAID全称为独立磁盘冗余阵列(Redundant Array of Independent Disks):基本思想就是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、 容量巨大的硬盘。     RAID通常被用在服务器电脑上,使用完全相…

    Linux干货 2016-06-22
  • 文本处理工具与正则表达式

    一、文本处理工具     1.文本查看命令           cat [OPTION]… [FILE]…         -n 显示行…

    Linux干货 2016-08-08
  • 学习宣言

    现在,青春是用来奋斗的;将来,青春是用来回忆的。   人生之路,有坦途也有陡坡,有平川也有险滩,有直道也有弯路。青年面临的选择很多,关键是要以正确的世界观、人生观、价值观来指导自己的选择。无数人生成功的事实表明,青年时代,选择吃苦也就选择了收获,选择奉献也就选择了高尚。青年时期多经历一点摔打、挫折、考验,有利于走好一生的路。要历练宠辱不惊…

    Linux干货 2016-12-29
  • 分享 (History,Ls,感悟 )

    1.History 选项   -c: 清空命令历史   -d offset: 删除历史中指定的第offset个命令    n: 显示最近的n条历史   -a: 追加本次会话新执行的命令历史列表至历史文件   -n: 读历史文件中未读过的行到历史列表   -r: 读历史文件附加到历史列表 &…

    2017-07-15