HTTP 协议小结
本篇博客来自前辈整理资料的学习之作,若有冒犯,敬请谅解!原文博客已删除,转载篇:HTTP协议详解
1,HTTP特点
请求方法(所有方法全为大写)有多种,解释如下:
GET 请求获取Request-URI 所标识的资源;POST 在Request-URI 所标识的资源后附加新的数据;HEAD 请求获取由Request-URI 所标识的资源的响应消息报头;PUT 请求服务器存储一个资源,并用Request-URI 作为其标识;DELETE 请求服务器删除Request-URI 所标识的资源;TRACE 请求服务器回送收到的请求信息,主要用于测试或诊断;CONNECT 保留将来使用;OPTIONS 请求查询服务器的性能,或者查询与资源相关的选项和需求。
4,响应
其中:HTTP-Version 表示服务器HTTP 协议的版本;Status-Code 表示服务器发回的响应状态代码;Reason-Phrase表示状态代码的文本描述。状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:1xx:指示信息--表示请求已接收,继续处理;2xx:成功--表示请求已被成功接收、理解、接受;3xx:重定向--要完成请求必须进行更进一步的操作;4xx:客户端错误--请求有语法错误或请求无法实现;5xx:服务器端错误--服务器未能实现合法的请求。常见状态代码、状态描述、说明:200 OK //客户端请求成功400 Bad Request //客户端请求有语法错误,不能被服务器所理解401 Unauthorized //请求未经授权,这个状态代码必须和 WWW-Authenticate 报头域一起使用403 Forbidden //服务器收到请求,但是拒绝提供服务404 Not Found //请求资源不存在500 Internal Server Error //服务器发生不可预期的错误503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后,可能恢复正常
Cache-Control:用于指定缓存指令, 缓存指令是单向的 ( 响应中出现的缓存指令在请求中未必会出现),且是独立的(一个消息的缓存指令不会影响另一个消息处理的缓存机制), HTTP1.0使用的类似的报头域为Pragma。请求时的缓存指令包括: no-cache(用于指示请求或响应消息不能缓存)、 no-store、 max-age、max-stale、 min-fresh、 only-if-cached;响应时的缓存指令包括: public、 private、 no-cache、 no-store、 no-transform、must-revalidate、 proxy-revalidate、 max-age、 s-maxage。Date:普通报头域表示消息产生的日期和时间。Connection:普通报头域允许发送指定连接的选项。 例如指定连接是连续, 或者指定“close”选项,通知服务器,在响应完成后,关闭连接。
Accept:用于指定客户端接受哪些类型的信息。Accept-Charset:用于指定客户端接受的字符集。Accept-Encoding:用于指定可接受的内容编码。Accept-Language:用于指定一种自然语言。Authorization:用于证明客户端有权查看某个资源。当浏览器访问一个页面时, 如果收到服务器的响应代码为01(未授权),可以发送一个包含Authorization请求报头域的请求,要求服务器对其进行验证。Host(发送请求时,该报头域是必需的):Host请求报头域主要用于指定被请求资源的Internet主机和端口号, 它通常从HTTPURL中提取出来。User-Agent:允许客户端将它的操作系统、 浏览器和其它属性告诉服务器。
Location:用于重定向接受者到一个新的位置。Location响应报头域常用在更换域名的时候。Server:包含了服务器用来处理请求的软件信息,与User-Agent请求报头域是相对应的。下面是Server响应报头域的一个例子:Server: Apache-Coyote/1.1WWW-Authenticate:必须被包含在401( 未授权的)响应消息中, 客户端收到401响应消息时候,并发送Authorization报头域请求服务器对其进行验证时,服务端响应报头就包含该报头域。
Content-Encoding:用作媒体类型的修饰符,它的值指示了已经被应用到实体正文的附加内容的编码,因而要获得Content-Type报头域中所引用的媒体类型,必须采用相应的解码机制。Content-Language:描述了资源所用的自然语言。没有设置该域则认为实体内容将提供给所有的语言阅读者。Content-Length:用于指明实体正文的长度,以字节方式存储的十进制数字来表示。Content-Type:用语指明发送给接收者的实体正文的媒体类型。Last-Modified:用于指示资源的最后修改日期和时间。Expires:给出响应过期的日期和时间。
1)打开telnet:运行-->cmd-->telnet2)打开telnet回显功能:set localecho
3)连接服务器并发送请求:open www.guet.edu.cn 80(注意端口号不能省略)![]()
7,HTTP协议相关技术补充
常用测试请求:1: HEAD/Http/1.0发送基本的Http请求2: DELETE/Http/1.0发送那些不被允许的请求,比如Delete请求3: GET/Http/3.0发送一个非法版本的Http协议请求4: GET/JUNK/1.0发送一个不正确规格的Http协议请求Http指纹识别工具Httprint,它通过运用统计学原理,组合模糊的逻辑学技术,能很有效的确定Http服务器的类型.它可以被用来收集和分析不同Http服务器产生的签名。
HTTP 协议小结的更多相关文章
- 转:oracle ebs po模块一揽子采购协议小结
转自:http://yedward.net/?id=193 oracle ebs po模块一揽子采购协议小结 本文总结oracle ebs采购订单(po)模块一揽子采购协议的相关知识,总结如下: 1. ...
- KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结(转)
源:KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结 Kermit协议 报文格式: 1.MARK,起始标记START_CHAR,为 0x01(CTRIL-A): 2.LEN,报文剩余 ...
- HTTP协议小结
HTTP/0.9已过时.只接受GET一种请求方法,没有在通讯中指定版本号,且不支持请求头.由于该版本不支持POST方法,因此客户端无法向服务器传递太多信息. HTTP/1.0 这是第一个在通讯中指定版 ...
- TCP&UDP协议小结
TCP和UDP 传输层功能 网络安全 Tcp可靠性 Tcp流控 Tcp拥塞控制 Tcp运输连接管理 一个网页可能很大,一个数据包传不过来,就需要分段传输. 网络可能拥塞,某段可能丢失.那必须有人监管, ...
- Oracle PO - 模块一揽子采购协议小结
本文总结oracle ebs采购订单(po)模块一揽子采购协议的相关知识,总结如下: 1.理论介绍 (1)名词术语 一揽子采购协议(Blanket Purchase Agreement,BPA)是指某 ...
- ISO 7810 协议小结
ISO 7816规定了Smart Card的传输协议分为 T=0 异步半双工字符传输协议 T=1 异步半双工块传输协议 T=0命令介绍 命令总是由接口设备启动,他以一个5字节的报头通知卡要做什么,然后 ...
- 《SDN核心技术剖析和实战指南》2.3 OF-CONFIG配置管理协议小结
OpenFlow协议定义了交换机和控制器交换数据的方式和规范,但并没有定义如何配置和管理必需的网络参数和网络资源,OF-CONFIG的提出就是为了对OpenFlow提供配置管理支持.如下图所示,OF- ...
- KERMIT,XMODEM,YMODEM,ZMODEM传输协议小结
转:http://blog.163.com/czblaze_3333/blog/static/208996228201272295236713/ Kermit协议 报文格式: 1. MAR ...
- [na]数据链路层&网络层协议小结截图版
ip层:分组选路 tcp:端到端的通信 中间系统没必要有应用程序,分组选路即可 应用程序中隐藏所有的物理细节. 语音肯定用udp linux主版本 次版本号 修订号 次版本为偶数说明是稳定版.奇数是开 ...
- [na]tcp&udp层各协议小结
TCP和UDP 传输层功能: 可靠性:序列号.确认号&flag位 有效性:win滑动窗口 这篇目录索引: Tcp可靠性 Tcp流控 Tcp拥塞控制 Tcp运输连接管理 TCP的可靠性和流控 为 ...
随机推荐
- poj2187凸包最远点对
暴力过了 #include<map> #include<set> #include<cmath> #include<queue> #include< ...
- ansible 调用playbook api执行(一)
一 调用ansible playbook api执行playbook 1 准备好hosts文件 root@ansible:~/ansible/playbooks# cat hosts [all:var ...
- 实现Callable接口创建线程
创建执行线程有四种方式: 实现implements接口创建线程 继承Thread类创建线程 实现Callable接口,通过FutureTask包装器来创建线程 使用线程池创建线程 下面介绍通过实现Ca ...
- 拒绝了对对象 'sp_OACreate' (数据库 'mssqlsystemresource',架构 'sys')的 EXECUTE 权限。
执行一个存储过程, 由于里面使用到了一些 --创建对象 EXEC sp_OACreate 'VBScript.RegExp', @objRegex OUT --设置属性 EXEC sp_OASe ...
- inotify的搭建,
在安装inotify之前我们要先安装云yum源 然后安装inotify的工具 命令 yum -y install inotify-tools 安装了以后会有两个命令: inotifywait:在被监控 ...
- 201621123006 《Java程序设计》第2周学习总结
1. 本周学习总结 以几个关键词描述本周的学习内容.并将关键词之间的联系描述或绘制出来. 原则:少而精,自己写.即使不超过5行也可,但请一定不要简单的复制粘贴. java数据类型:java数据类型分为 ...
- java语言基础-变量
一丶变量的基本概念 1.什么是变量 (1).内存中的一个存储区域 (2).该区域有自己的名称(变量名),和类型(数据类型) (3.)该区域的数据可以在同一类型范围内不断变化(定义变量的主要目的是因为数 ...
- L171
As much as we thirst for approval, we dread condemnation.我们渴望赞许,同样也害怕受到指责.If somebody's father was o ...
- C#项目中怎样创建和使用类和类库
创建一个类库项目在“文件”菜单上,选择“新建项目”. 在“新建项目”对话框的“模板”窗格中,单击“类库”. 在“名称”框中键入 Persons,再单击“确定”. 把“添加新解决方案”勾选掉,选择“添入 ...
- [AirFlow]AirFlow使用指南三 第一个DAG示例
经过前两篇文章的简单介绍之后,我们安装了自己的AirFlow以及简单了解了DAG的定义文件.现在我们要实现自己的一个DAG. 1. 启动Web服务器 使用如下命令启用: airflow webserv ...
