HTTP协议细节(超经典)

      最后更新:2021-11-23 01:34:54 手机定位技术交流文章

      什么是HTTP协议

      超文本传输协议(超文本传输协议)是一项通信协议,允许将HTML网页从网络服务器移动到客户浏览器。协议指的是计算机通信网络中两台计算机之间通信必须共同遵守的规则或规范。

      我们目前正在使用HTTP/1,第1版。

      Author :Jeffrey

      引言

      HTTP是一项面向目标的协议,属于应用层,以简单快捷的方式适用于分布的超媒体信息系统,1990年提出,经过几年的使用和开发后,不断得到发展和扩大,WW目前使用的是HTTP/1.6版0,HTTP/1.规范工作正在进行中,HTTP-NG(HTTP的国有化)提案已经提出。
      以下是HTTP协议的主要方面:
      一. 可用客户端/服务器模式
      二. 简单和快速:当客户从服务器询问服务时,只传达请求方法和路径。请求方法通常由 GET、 HEAD 和 POST 使用。每种方法都定义客户与服务器之间的各种互动。 HTTP 协议的简单化使得 HTTP 服务器软件变得很小,通信速度也很快。
      三. 灵活性: HTTP 允许传输任何形式的数据项,发送的类型由Fontent-Type 表示。
      四. 无连接: 没有连接表示每个连接只执行一个请求。 一旦服务器处理过客户的请求并收到客户的回复, 连接就会中断。 此技术可以节省传输时间 。
      5无地位: HTTP 协议是一项地位不地位协议。 状态列表意味着协议缺乏处理此事的记忆能力。 状态列表意味着,如果后续行动需要事先信息,则必须重新发送,这可能导致每个连接传送的数据量增加。 另一方面,服务器在不需要事先信息时更快地回复。

      一、 HTTP 协议信息的 URL 部分

      HTTP(超文本传输协议)是一种基于请求和响应模式的非国家应用级协议,通常基于TPCP连接。 版本1包括一种持续连接的方法,而绝大多数网络开发是建立在HTTP协议基础上的网络应用程序。

      HTTP URL (一种提供足够信息以发现网站的具体类型的 URI) 格式如下:
      http://host[":"port][abs_path]
      http 指定网络资源将通过 HTTP 协议定位; 主机指定一个合法的互联网主机域名或 IP 地址; 端口指定一个端口号码, 默认端口 80 为空; abbs_ path 将请求的资源指定给 URL; 如果 URL 不提供 abs_ path, 则在请求时必须使用“ /” 格式, 通常工作浏览器会自动执行 。
      eg:
      一,我不知道你在说什么,guet。 我不知道你在说什么,edu. cn。
      我不知道你在说什么 guitt 我不知道你在说什么 不 不 不 不 不 不 不 不 不 不 不 不 不 不 不 不
      2、http:192.168.0.116:8080/index.jsp

      二、《临时协定》定义的适用

      请求分为三部分:请求行、信息提示和请求机构。

      1. 请求行以方法符号开头,然后是所要求的磁共振和协议版本的格式:方法要求-URI HTTP-Version CRLF
      方法指请求方法,请求-URI指统一的资源识别,HTTP-Version指HTTP协议的预期版本,CRLF指回报和线条变化(末尾的CRLF除外,不允许有不同的CR或LF字符)。

      请求有许多技术(所有技术都属于上例),详情如下:
      G. 要求获得团结调查局指出的资源
      POST 在 " 请求 -- -- URI " 所示资源之后添加新数据。
      HEAD 应急信头用于寻求获得 " URI请求 " 确定的资源。
      PUT 指示服务器保存资源,将请求URI作为标识符。
      DELETE要求服务器删除请求-URI显示的资源。
      TRACE要求服务器提供通常用于测试或诊断的所需信息。
      " 良心 " 组织保留今后利用它的权利。
      选择要求提供关于服务器性能的信息或与资源有关的选项和要求。
      应用举例:
      GET 方法:当网页输入浏览器地址栏时,浏览器使用 GET 方法从服务器获取资源,例如: GET/form.html HTTP/1.1 (CRLF)。

      POST方法通常用于表格提交,需要提出请求的服务器接受与请求相关的数据。
      eg:POST /reg.jsp HTTP/ (CRLF)
      Accept:image/gif,image/x-xbit,... (CRLF)
      ...
      HOST:www.guet.edu.cn (CRLF)
      Content-Length:22 (CRLF)
      Connection:Keep-Alive (CRLF)
      Cache-Control:no-cache (CRLF)
      (CRLF)/CRLF表示头条新闻已经结束。
      user=jeffrey&pwd=1234 //此行以下为提交的数据

      HEAD 方法与 GET 方法几乎完全相同,其头部包含的信息与 GET 请求对HEAD 请求的回答部分的 GET 请求相同。 这样, “ 请求- URI ” 所示资源的信息无需发送完整的资源内容即可获取。 这种方法经常用于验证超链接的有效性、 其可访问性, 以及最近的修改技术(EEAD) 方法与“ GET ” 方法几乎相同, 头部包含的信息与“ Get” 请求对“ 请求- URI ” 请求的回答部分相同。 这样, “ 请求- URI ” 所示资源的信息无需发送完整的资源内容即可获取。 此方法经常用于测试超链接的有效性、 可访问性和最新更新。
      2、请求报头后述
      3、请求正文(略)

      三、对《临时协议》定义的答复

      服务器在收到并澄清请求后发送 HTTP 回复信息 。

      HTTP答复还包括三个部分:状态线、信息信头和答复内容。
      1. 地位线的格式如下:
      HTTP-Version Status-Code Reason-Phrase CRLF
      HTTP- Version 显示服务器上的 HTTP 协议版本; 状态代码显示服务器的响应状态代码; 状态- 代码显示服务器的响应状态代码; 原因- 词句显示状态编码的文本描述 。 状态编码显示服务器上的 HTTP 协议版本; 状态- 代码显示服务器的响应状态代码; 原因- 字符显示状态代码的文本描述 。
      状态代码由3位数组成,其中1位数确定了应对类别,并有5个潜在值:
      1xx: 指示信息 -- -- 显示收到请求,正在继续处理。
      2xx:成功 -- -- 表示成功收到、理解和接受请求。
      3xx: 转方向 -- -- 需要采取更多的行动以完成请求
      4xx:客户错误 -- -- 请求出现语法错误或请求未实现
      5xx: 服务器端出错误 - 服务器无法完成有效的请求 。
      国家代码、状态说明和说明:
      200 OK/ 成功客户端请求
      400 错误请求 / / 客户端请求服务器无法理解的词汇错误
      401 未经授权//请求未经授权地位代码,用于WW-授权域域
      403 禁止使用 / 服务器收到请求,但拒绝提供所要求的服务。
      404 未找到 / / 请求的资源不存在, 例如, 因为 URL 输入错误 。
      500 国际服务器错误// 意外服务器错误
      503 服务无可用/服务器暂时无法处理客户请求,可在短时间内恢复正常业务。
      eg:HTTP/1.1 200 OK (CRLF)

      2、响应报头后述
      3. 服务器所传送资源的内容称为回复文本。

      四. HTTP协定的头条标题

      HTTP信息由客户对服务器的请求和服务器对客户的答复组成,起点(在请求的情况下,在请求情况下,在请求行的情况下,在请求行的情况下,在答复行的情况下,在请求行的情况下),标题(可选),空白线(仅CRLF线),以及信息内容(可选)都是信息的一部分。

      HTTP信头、请求信头、响应信头和实体信头都是HTTP标题的例子。
      每个字段由 + “:” + 空间+ 值组成,页眉的名称在个案中并不重要。

      1、普通报头
      对所有请求和答复都使用少量头条新闻,尽管不是针对发送实体,而只是针对信息。
      eg:
      缓存控制用于定义单向的缓存指示(答复中的缓存指示在请求中并不总是存在)和独立的缓存指示(一个信件的缓存指示不影响另一个信件处理的缓存机制), HTTP1。
      在提出请求时,缓存指示包括: " 不藏匿 " (用于发出无法保存的请求或答复的信号)、 " 无储存 " 、 " 最大数量 " 、 " 最大数量 " 、 " 最大数量 " 、 " 最少量 " 和 " 唯一数量 " 。
      在答复时,缓冲指令包括:公共、私人、无缓冲、无储存、无变异、必须重新确认、代理重新估价、最大年龄、超速。
      例如,服务器的 JP 程序可以写成如下内容, 提醒 IE 浏览器( 客户) 不要缓存页面: 响应 。 “ 不缓存 ”, “ 缓存控制 ” ;
      //应答.Set Heaster (“Pragma”、“no-cache”); 做与上述相同的目的,一般是两个/分摊
      以下代码将包括在回复信息中:缓存控制:无缓存。


      信息生成日期和时间

      连接导言 通知用户, 域名允许他们传输请求的连接 。 例如, 声明连接是连续的, 或者指定“ 关闭” 选项, 提醒服务器, 并在回复完成后关闭连接 。 提供提示 通知用户, 域名允许他们传输请求的连接 。 例如, 声明连接是连续的, 或者指定“ 关闭” 选项, 通知服务器, 并在回复完成后关闭连接 。

      2、请求报头
      请求信头允许客户向服务器发送服务器所要求的额外信息以及客户自己的信息。
      常用的请求报头
      Accept
      接受要求使用域名来识别客户将接收的信息类型。 例如, 接受: 图像/ gif 表示客户想要以 GIF 图像格式接收资源; 接受: text/ html 表示客户想要接受 html 内容 。
      Accept-Charset
      接受- Charset 要求使用信头字段来定义客户端允许的字符集。 例如 : 接受- Charset : Iso- 8859-1, gb2312。 如果请求信件中没有提供此字段, 默认为任何有效的字符集 。
      Accept-Encoding
      接受- 编码请求的域名与 接受 相似, 但用于定义可接受的内容代码 。 例如, 接受- 编码: gzip. com 。 我不确定您在说什么, 淡化。 如果请求信件中没有给出此域名服务器, 客户端将被认为适合各种内容编码 。
      Accept-Language
      接受- Language 请求的域名与 接受 相似, 但它指定了自然语言 。 例如, 接受- Language : Zh- cn 。 如果请求信件中没有指定此信头, 服务器认为客户端可以接受所有语言 。
      Authorization
      当浏览器查看网站时,如果服务器返回了401(未经授权)的响应代码,它可以提交一份请求,其中含有授权请求,请求服务器验证一个域名。
      主机主(提交请求时需要域名)
      域名由主机请求,主要用于标明所请求资源的互联网主机和端口号,通常从 HTTP URL 中检索,例如:
      我们把它输入浏览器:http://ww.un.org/index.html 我不确定你在说什么 guet.
      主机请求域将包含在浏览器提供的请求信息中,具体如下:
      Host:www.guet.edu.cn
      默认使用第80号端口。如果给出了端口号,它将成为:主机:ww.un.org.我不知道你在说什么,guit.我不知道你在说什么,edu.cn:指定端口号
      User-Agent
      当我们在线进入论坛时,我们经常看到欢迎通知,显示你操作系统的名称和版本,以及你使用的浏览器的名称和版本,这有时令许多人感到惊讶,在现实中,服务器应用程序从用户代理处、所请求的域名获取这种信息。用户代理处要求域名允许客户将其操作系统、浏览器和其他属性通知服务器。然而,不需要这个域名,而是一个替代域名。
      请求报头举例:
      GET /form.html HTTP/1.1 (CRLF)
      Accept:image/gif,image/x-xbitmap,image/jpeg,application/x-shockwave-flash,application/vnd.ms-excel,application/vnd.ms-powerpoint,application/msword,*/* (CRLF)
      Accept-Language:zh-cn (CRLF)
      Accept-Encoding:gzip,deflate (CRLF)
      If-Modified-Since:Wed,05 Jan 2007 11:21:25 GMT (CRLF)
      If-None-Match:W/"80b1a4c018f3c41:8317" (CRLF)
      User-Agent:Mozilla/4.0(compatible;MSIE6.0;Windows NT 5.0) (CRLF)
      Host:www.guet.edu.cn (CRLF)
      Connection:Keep-Alive (CRLF)
      (CRLF)

      3、响应报头
      回复信头使服务器能够传送无法列入状态行的补充回复信息,以及服务器信息和进一步访问URI请求所定义的资源。
      常用的响应报头
      Location
      Lactation 对将接收器发送到新地方的头条新闻反应。 Lactation 对域名经常被更改的事实反应 。
      Server
      服务器的响应域包括服务器用于处理请求的软件信息。 这符合用户代理请求的域名 。
      以下是服务器对主域响应的一个例子:
      Server:Apache-Coyote/1.1
      WWW-Authenticate
      当客户收到401条回复信息并将其发送给授权请求服务器确认该信息时,WWA授权响应域必须包含在401条(未经授权)回复信息中。
      例如,WW-授权: 基本域= “ 基本授权测试 ” 。 可以看到, 服务器对请求的资源使用简单的验证程序 。


      4、实体报头
      实体由一个实体总部和实体的一个机构组成,但这并不表示该实体的总部和实体的机构必须一起发送,只有该实体的总部可以发送。 实体载有实体机构(例如该实体是否有机构)和请求中查明的资源方面的明确元信息。
      常用的实体报头
      Content-Encoding
      Enter-Encording实体域用作媒体型修改器,其价值显示该实体体内添加的额外材料的编码,这意味着必须相应解码Fontent-Type域指定的介质类型。
      Content-Language
      内容语言的物理领域界定了资源使用的自然语言,据认为,如果未指定字段,实体内容将被提供以所有语文阅读。
      例如:内容语言:da
      Content-Length
      Enter-Length 物理域表示实体文字体的长度,以保存的小数整数的字节表示。
      Content-Type
      内容类型 实体 的 标题 表示 向 实体 机构 的 接收 人 传送 的 媒体 类型 。 例如 :
      Content-Type:text/html;charset=ISO-8859-1
      Content-Type:text/html;charset=GB2312
      Last-Modified
      最后修改后的物理域用于确定资源修改的最后日期和时间。
      Expires
      过期实体域提供了回复过期的日期和时间 。 允许代理服务器或浏览器随时更新缓存页面( 在访问先前浏览的页面时直接从缓存中装入, 最小化回复时间, 并减少服务器的负载), 我们可以使用过期实体域来提供页面过期的时间 。 例如 : 过期 : Thu, 2006年9月15日 16: 23: 12 GMT 。
      HTTP1.1 客户端和缓存必须将其他非法日期格式( 包括 0) 视为过期 。 例如, 为了防止浏览器缓存页面, 我们可以使用过期实体域, 设定为 0, jsp 使用以下程序 : 响应 。 SetDate chainer ("Expires", "0");

      五. 利用Telnet监测《http http 协议》的通信进程

      实验目的及原理:
      使用 MS Telnet 工具,通过手动输入要求从 http 上输入的信息向服务器提交请求,服务器接收、解释和批准请求,并提供在 Telnet 窗口上显示的答复,增强对 http 协议通信过程的认知。

      实验步骤:

      一,启动Telnet
      一. 连接到 Telnet
      运行-->cmd-->telnet

      一.2 使用开放的Telnet回声功能。
      set localecho

      2. 连接服务器并开始发送请求。
      我完全不知道你在说什么, guet. 我完全不知道你在说什么, edu.cn 80 // 请注意港口号无法删除。

      HEAD /index.asp HTTP/1.0
      Host:www.guet.edu.cn

      * 我们可以修改请求方法, 要求使用Guilin电子主页的内容, 并输入以下信息* /
      open www.guet.edu.cn 80

      GET/index.HTTP/1.0//资源请求内容
      Host:www.guet.edu.cn

      对不起,Sina. 我不知道你在说什么,com.cn 80//Enter the little ww.un.org 在命令提示信号下。 对不起,Sina.我不知道你在说什么,com.cn 80//
      HEAD /index.asp HTTP/1.0
      Host:www.sina.com.cn


      3 实验结果:

      2. 收到下列答复:

      HTTP/1.121 OK / / 请求已完成
      微软-IIS/5.0/网络服务器
      Date: Thu,08 Mar 200707:17:51 GMT
      Connection: Keep-Alive
      Content-Length: 23330
      Content-Type: text/html
      Expries: Thu,08 Mar 2007 07:16:51 GMT
      Set-Cookie: ASPSESSIONIDQAQBQQQB=BEJCDGKADEDJKLKKAJEOIMMH; path=/
      Cache-control: private

      //资源内容省略

      2. 收到两份答复:

      HTTP/1.0404 错误// 请求失败
      Date: Thu, 08 Mar 2007 07:50:50 GMT
      Server: Apache/2.0.54
      Last-Modified: Thu, 30 Nov 2006 11:35:41 GMT
      ETag: "6277a-415-e7c76980"
      Accept-Ranges: bytes
      X-Powered-By: mod_xlayout_jh/0.0.1vhs.markII.remix
      Vary: Accept-Encoding
      Content-Type: text/html
      X-Cache: MISS from zjm152-78.sina.com.cn
      Via: 1.0 zjm152-78.sina.com.cn:80
      X-Cache: MISS from th-143.sina.com.cn
      Connection: close


      失去了跟主机的连接

      按任意键继续...

      四. 注:如果发生输入错误,第一个请求将失败。
      2. 信头字段对案件敏感。
      3. 关于HTTP协议的进一步信息可在RFC 2616网址http://ww.un.org.Oh, 来吧,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,我们走,
      4. 后台方案的发展必须能够查阅《http协议》。

      六. HTTP协定的技术增编

      1、基础:
      FTP用于文件传输,SMTP用于电子邮件,DNS用于域名系统服务,NNTP用于网络新闻传输,HTTP用于他人,等等,高级别协议的例子。
      中介有三种类型:代理、 网关和频道。 代理是接收代理, 充当某些其他服务器的较高级别, 并在必要时将请求翻译给下级服务器协议。 端口是接收代理, 充当某些其他服务器的上层, 必要时将请求翻译给下级服务器协议 。 防火墙 ), 或者当中介无法确定信件内容时 。
      代理服务器: 能够作为服务器或客户端机器运行的中介程序, 以确定对其它客户机的请求。 请求通过内部或其它服务器的潜在翻译传送。 代理必须解释并在可能的情况下在发送前重写所请求的信息。 代理通常作为防火墙的客户端门户运作, 代理也可以作为帮助应用程序处理用户代理不处理的请求 。
      与代理不同,网关接受的请求视同是所寻求资源的源服务器;提交请求的客户不知道它与网关通信。
      该网关经常用作防火墙上的服务器端门户,但也可能用作协议转换器,以获取储存在非HTTP系统中的资源。
      频道( 频道) : 是两个连接的中介 。 一旦连接, 频道将被视为不是 HTTP 通讯, 尽管它可能是 HTTP 请求启动的 。 当中继两端的链接关闭时, 隧道就会消失 。 当门户必须存在时, 或中介无法解释中继通讯时, 门户经常使用 。

      协议分析的好处包括通过HTTP分析器探测网络攻击。
      今后入侵探测的方向将是以模块方式对高级别协定进行分析性审查。
      HTTP及其代理商经常在80、3128和8080港口利用网络上的港口标签。

      3. 由于HTTP内容放出限制,实施了拒绝服务攻击。
      当使用 POST 方法时, 内容Lenth 可用于指定交付数据的时间长度, 如内容Lenth: 99, 等内容Lenth, 在传输完成之前, 内存不会解开, 攻击者可以通过向 WEB 服务器永久发送垃圾数据来利用这一缺陷, 直到 WEB 服务器被清空。 这种形式的攻击将留下最小的痕迹 。
      http://www.cnpaf.net/Class/HTTP/0532918532667330.html

      4. 使用HTTP协议的财产进行拒绝服务攻击的一些选择。
      因为服务器太忙于处理攻击者伪造的 TCP 连接请求以倾听客户的常规请求(毕竟,客户的通常请求率非常低), 服务器从正常客户的角度错过了答案, 我们称之为 SYNFLood 攻击服务器端。
      “蓝精灵 ” 、 “ 催泪” 、 和其他人利用国际海事委员会报告针对Flood 和 IP 碎裂。 本条使用“ 常规连接” 机制产生拒绝服务的攻击。
      这19个港口以前曾用于充电攻击,即充电-Denial_of_service,但是它们所采用的方法是在两个充电服务器之间建立UDP连接,使服务器能够处理过多的信息,而DoWN可以下降,因此杀死WEB服务器的先决条件必须是两个:1. 有充电服务2.HTTP服务。
      方法 : 如果攻击者伪造源 IP 以向 N- Excertn 提交连接请求( Connect), 发件人将接收连接, 并将72 字节流( 取决于网络现实) 返回服务器 。

      5. Http/ww.http://ww.http.
      Http 指纹识别基本原理基本相同:记录各种服务器,以发现 Http 协议执行中的微小差异。 Http 指纹识别比 TCP/IP 指纹识别复杂,理由是修改 Http 服务器配置文件、添加插件或组件使更改 Http 回复信息更加简单,这使得识别难度加大;然而,对用户进行定制
      将服务器恢复为先前的 Banner 信息配置很简单。 开放源 HTTP 服务器( 如 Apache ) 可以编辑源代码中的 Banner 信息 。 使用插件是隐藏 Banner 信息的另一种方法 。
      常用测试请求:
      1: HEAD/Http/1.0 提交简单的 HTTP 请求
      2:DELETE/Http/1.0 发送了不允许发送的那些文件,例如删除请求
      3: Get/Http/3.0 发送未经授权的 HTTP 协议请求
      4: Get/JUNK/1.0 提出无效的 HTTP 协议请求 。
      Http 指纹识别工具 Httprint Htprint 可以通过应用统计原则和整合模糊逻辑方法,成功检测HTTP服务器的类型,可用于收集和分析由各种 HTTP 服务器生成的签名。

      6. 其他:为了在使用浏览器的同时提高用户效率,当代浏览器提供同步访问,使您能够同时创建多个链接,同时查看网页,以快速接收一个网页上的多个图标,从而能够更快地交付完整的网页网页内容,从而在使用浏览器的同时提高用户效率,当代浏览器提供同步访问,从而能够创建多个链接,同时查看一个网页,以快速接收一个网页上的多个图标,从而能够更快地交付完整的网页。
      HTTP1提供这种连续通信,下一代HTTP协议也是如此:HTTP-NG为会议管理、内容丰富的磋商等提供更大的支持。
      更高效率的连接。

      谢谢,冯纽曼先生 他是世界上第一台电脑

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/13715.html

          热门文章

          文章分类