HTTP的常见方法 / HTTP状态码 / HTTP版本

HTTP的常见方法

  • GET方法:获取资源
    客户端请求指定的资源信息,服务器返回指定资源。
  • POST方法:传输实体主体
    一般用于表单的提交数据,将客户端的数据提交到服务器。
  • PUT方法:传输文件
    在请求报文主体中包含文件的内容,然后保存到请求URL指定的位置。
  • HEAD方法:获得报文首部
    请求HTTP 首部,响应报文中用于确认URL的有效性及资源更新的日期时间等。
  • DELETE方法:删除文件
    请求服务器删除指定的资源。
  • OPTIONS方法:询问支持的方法
    用来查询请求URL指定的资源支持的方法。
  • TRACE方法:追踪路径
    回显服务器收到的请求,主要用于测试或诊断。
  • CONNECT方法:要求用隧道协议连接代理
GET和POST的区别
  1. 功能上
    get 是从服务器上获取数据,post 是向服务器传送数据。
  2. 数据存储上
    get 是把参数数据队列加到提交表单的 ACTION 属性所指的 URL 中,值和表单内各个字段一一对应,在URL中可以看到。post 是将表单中的数据放在的数据体中,按照变量和值相对应的方式,传递到 action 所指向URL。用户看不到这个过程。
  3. 安全上
    get 的安全性较低,post 安全性较高, 通过 get 提交数据,用户名和密码将明文出现在 URL 上。Post的所有操作对用户来说都是不可见的。
  4. 传送的数据量
    get 传送的数据量较小,长度受到 URL 长度的限制,post 传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。也跟各个浏览器、操作系统以及服务器的限制有关。
  5. 缓存
    get 通过一次请求的时候会在浏览器上进行一次缓存,post 不会。
  6. get会产生一个TCP数据包,POST会产生两个TCP数据包。
    get会发送http header和data给服务端,服务端返回一个200,请求成功。
    post会先发送http header给服务端,告诉服务端等一下会有数据过来,服务端返回100,告诉客户端已经准备接收数据,post在发送一个data给服务端,服务端返回200,请求成功。但是上面所说的post会比get多一个tcp包其实不太严谨。多发的那个expect 100 continue header报文,是由客户端对http的post和get的请求策略决定的,目的是为了避免浪费资源,如带宽,数据传输消耗的时间等等。所以客户端会在发送header的时候添加expect 100去探探路,如果失败了就不用继续发送data,从而减少了资源的浪费。所以是否在发送一个包取决了客户端的实现策略,和get/post并没什么关系。有的客户端比如fireFox就只发送一个包。

HTTP 的状态码

  • 1消息
    100 Continue:客户端应当继续发送请求。这个临时响应式用来通知客户端它的部分请求已经被服务器接收,且仍未被拒绝。客户端应当继续发送请求的剩余部分。
  • 2成功
    这一类型的状态码,代表请求已成功被服务器接收、理解、并接受。
    200:请求成功,请求所希望的响应头或数据体将随此响应返回。
  • 3重定向
    301:永久重定向,表示所请求的文档在别的地方,文档新的 URL 会在定位响应头信息中给出,浏览器自动连接到新的 URL。
    302:临时重定向,服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。
    304:未修改,自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。
  • 4请求错误
    400 :错误请求,服务器不理解请求的语法。
    401:未授权,访问被拒绝。
    403:禁止访问,服务器拒绝请求。
    404:未找到,服务器找不到请求的网页。
    408:请求超时,服务器等候请求时发生超时。
    410:已删除,如果请求的资源已永久被删除,服务器就会返回此响应。
  • 5服务器错误
    500:服务器遇到错误,无法完成请求。
    502:错误网关,服务器作为网关或代理,从上游服务器收到无效响应。
    503:服务不可用,服务器目前无法使用(由于超载或停机维护)。通常,这只是暂时状态。
    505:HTTP 版本不支持,服务器不支持请求中所用的 HTTP 协议版本

HTTP版本

http 1.0:

每个TCP连接只能发送一个请求,发送数据完毕,连接就关闭,如果还要请求其他资源,就必须再新建一个连接。
头信息是 ASCII 码,后面数据可为任何格式。
服务器回应时会告诉客户端,数据是什么格式,即Content-Type字段的作用。这些数据类型总称为MIME即多用途互联网邮件扩展,每个值包括一级类型和二级类型,预定义的类型,也可自定义类型, 常见Content-Type值:text/xml image/jpeg audio/mp3

http 1.1:

新增方法:PUT、PATCH、OPTIONS、DELETE
引入了持久连接(persistent connection),即TCP连接默认不关闭,可以被多个请求复用,不用声明Connection: keep-alive。对于同一个域名,大多数浏览器允许同时建立6个持久连接。
引入了管道机制,即在同一个TCP连接里,客户端可以同时发送多个请求,进一步改进了HTTP协议的效率。

同一个TCP连接里,所有的数据通信是按次序进行的。服务器只能顺序处理回应,前面的回应慢,会有许多请求排队,造成"队头堵塞"(Head-of-line blocking)

为避免上述问题
两种方法:一是减少请求数,二是同时多开持久连接

http1.1没有解决的问题
1.传输数据是明文
2.header头部数据太长
3.每次传输还是要重新连接
4.server不能主动push

Http2.0

HTTP2.0是SPDY(谷歌公司研发的https的一种协议)的升级版
1.头信息和数据体都是二进制,称为头信息帧和数据帧
2.复用TCP连接,在一个连接里,客户端和浏览器都可以同时发送多个请求或回应,且不用按顺序一一对应,避免了“队头堵塞“,此双向的实时通信称为多工。
3.引入头信息压缩机制,头信息使用gzip或compress压缩后再发送;客户端和服务器同时维护一张头信息表,所有字段都会存入这个表,生成一个索引号,不发送同样字段,只发送索引号,提高速度
4.HTTP/2 允许服务器未经请求,主动向客户端发送资源,即服务器推送(server push)

http1.0和http1.1的区别
  1. 长连接
    HTTP 1.1支持长连接和请求的流水线处理,在一个TCP连接上可以传送多个HTTP请求和响应,减少了建立和关闭连接的消耗和延迟,在HTTP1.1中默认开启Connection: keep-alive,弥补了HTTP1.0每次请求都要创建连接的缺点

  2. 缓存处理
    在HTTP1.0中主要使用header里的If-Modified-Since,Expires来做为缓存判断的标准,HTTP1.1则引入了更多的缓存控制策略例如Entity tag,If-Unmodified-Since, If-Match, If-None-Match等更多可供选择的缓存头来控制缓存策略

  3. 带宽优化和网络连接的使用
    HTTP1.0中,存在一些浪费带宽的现象,例如:客户端只是需要某个对象的一部分,而服务器却将整个对象送过来了,并且不支持断点续传功能,HTTP1.1则在请求头引入了range头域,它允许只请求资源的某个部分,即返回码是206(Partial Content),方便了开发者自由的选择以便于充分利用带宽和连接

  4. 错误通知的管理
    在HTTP1.1中新增24个状态响应码,如
    409(Conflict)表示请求的资源与资源当前状态冲突;.
    410(Gone)表示服务器上的某个资源被永久性的删除

  5. Host头处理
    在HTTP1.0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名。但随着虚拟主机技术的发展,在一台物理服务器上可以存在多个虚拟主机,并且它们共享一个IP地址。HTTP1.1的请求消息和响应消息都应支持Host头域,且请求消息中如果没有Host头域会报告一个错误(400 Bad Request)

  6. HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。
    HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 CONNECT 方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目 录 译者序 前言 第一部分 TCP/IP基础 第1章 开放式通信模型简介 1 1.1 开放式网络的发展 1 1.1.1 通信处理层次化 2 1.1.2 OSI参考模型 3 1.1.3 模型的使用 5 1.2 TCP/IP参考模型 7 1.3 小结 7 第2章 TCP/IP和Internet 8 2.1 一段历史 8 2.1.1 ARPANET 8 2.1.2 TCP/IP 9 2.1.3 国家科学基金会(NSF) 9 2.1.4 当今的Internet 12 2.2 RFC和标准化过程 12 2.2.1 获得RFC 13 2.2.2 RFC索引 13 2.2.3 有关RFC的幽默 13 2.3 Internet服务简介 13 2.3.1 Whois和Finger 14 2.3.2 文件传输协议 14 2.3.3 Telnet 14 2.3.4 Email 14 2.3.5 WWW 14 2.3.6 USENET News 15 2.4 Intranet和Extranet概览 15 2.4.1 Intranet 15 2.4.2 将Intranet对外开放 16 2.5 Internet的明天 16 2.5.1 下一代Internet(NGI) 16 2.5.2 超速骨干网服务 16 2.5.3 Internet2(I2) 17 2.6 Internet管理组织 17 2.6.1 Internet协会 17 2.6.2 Internet体系结构组 17 2.6.3 Internet工程任务组 17 2.6.4 Internet工程指导组 17 2.6.5 Internet编号管理局 18 2.6.6 Internet名字和编号分配组织 (ICANN) 18 2.6.7 Internet网络信息中心和其他注 册组织 18 2.6.8 RFC编辑 18 2.6.9 Internet服务提供商 18 2.7 小结 19 第3章 TCP/IP概述 20 3.1 TCP/IP的优点 20 3.2 TCP/IP的层和协议 21 3.2.1 体系结构 21 3.2.2 传输控制协议 21 3.2.3 IP协议 23 3.2.4 应用层 25 3.2.5 传输层 25 3.2.6 网络层 25 3.2.7 链路层 25 3.3 远程登录(Telnet) 25 3.4 文件传输协议(FTP) 25 3.5 普通文件传输协议(TFTP) 26 3.6 简单邮件传输协议(SMTP) 26 3.7 网络文件系统(NFS) 26 3.8 简单网络管理协议(SNMP) 27 3.9 TCP/IP和系统结合 27 3.10 内部网概述 28 3.11 小结 28 第二部分 命名和寻址 第4章 IP网络中的名字和地址 29 4.1 IP寻址 29 4.1.1 二进制和十进制数 30 4.1.2 IPv4地址格式 30 4.2 子网的出现 34 4.2.1 分子网 35 4.2.2 可变长子网掩码(VLSM) 37 4.3 无类域前路由(CIDR) 38 4.3.1 无类地址 38 4.3.2 强化路由汇聚 39 4.3.3 超网化 39 4.3.4 CIDR怎样工作 39 4.3.5 公共地址空间 40 4.3.6 RFC 1597和1918 40 4.4 小结 40 第5章 ARP和RARP 41 5.1 使用地址 41 5.1.1 子网寻址 41 5.1.2 IP地址 43 5.2 使用地址解析协议 44 5.2.1 ARP cache 45 5.2.2 代理ARP 47 5.2.3 反向地址解析协议 47 5.3 使用ARP命令 47 5.4 小结 47 第6章 DNS:名字服务器 48 6.1 域名系统概述 48 6.2 授权局 50 6.3 DNS分布数据库 50 6.4 域和区 50 6.5 Internet顶级域 51 6.6 选择一个域名服务器 52 6.7 名字服务解析过程 52 6.7.1 递归查询 52 6.7.2 叠代查询 52 6.8 高速缓存 52 6.9 反向解析(Pointer)查询 52 6.10 DNS安全 52 6.11 资源记录 53 6.12 小结 54 第7章 WINS 55 7.1 NetBIOS 55 7.2 NetBIOS名字解析 57 7.3 动态NetBIOS名字解析 58 7.3.1 使用WINS的优点 58 7.3.2 WINS如何工作 59 7.3.3 配置WINS客户机 60 7.3.4 为代理配置WINS 60 7.3.5 配置NT 4.0系统 61 7.3.6 配置Windows 95或Windows 98 系统 61 7.4 安装WINS服务器 61 7.5 WINS管理和维护 62 7.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值