吉恩聊城网站建设,班级网站模板html,wordpress设置菜单导航,百度推广软件文章目录 1 HTTP请求2 HTTP响应3 HTTP方法4 URL5 HTTP消息头5.1 常用消息头5.2 请求消息头5.3 响应消息头 6 cookie7 状态码8 HTTP代理9 HTTP身份验证 HTTP#xff08;HyperText Transfer Protocol#xff0c;超文本传输协议#xff09;是访问万维网使用的核心通信协议… 文章目录 1 HTTP请求2 HTTP响应3 HTTP方法4 URL5 HTTP消息头5.1 常用消息头5.2 请求消息头5.3 响应消息头 6 cookie7 状态码8 HTTP代理9 HTTP身份验证 HTTPHyperText Transfer Protocol超文本传输协议是访问万维网使用的核心通信协议也是今天web应用程序使用的通讯协议。 HTTP使用一种基于消息的模型客户端发出一条请求消息而后由服务端返回一条响应消息。
1 HTTP请求 所有HTTP消息请求与响应中都包含一个或几个单行显示的消息头然后是一条强制空白行最后是消息主体可选。以下是一个典型的HTTP请求部分 每个HTTP请求的第一行都由3个以空格相隔的项目组成
一个说明HTTP方法的动词。最常见的方法是GET它的主要作用是从web服务器获取一个资源。GET请求并没有消息主体因此在消息头后的空行中没有其他资源。所请求的URL。该URL通常由所请求的资源名称以及一个包含客户端向该资源提交的参数的可选查询字符串组成查询字符串以字符标识。使用的HTTP版本。 其他要点如下
Referer消息头表示发出请求的原始URLUser_Agent消息头提供与浏览器或其他生成请求的客户端软件相关的信息。请注意由于历史原因大多数浏览器都包含Mozilla前缀。Host消息头用于指定出现在被访问的完整URL中的主机名称。如果几个web站点以相同的一台服务器为主机就需要使用Host消息头因为请求第一行中的URL内通常并不包含主机名称。Cookie消息头用于提交服务器向客户端发布的其他参数。
2 HTTP响应 以下是一个典型的HTTP响应 每个HTTP响应的第一行由3个以空格间隔的项目组成。
使用的HTTP版本。表示请求结果的数字状态码。200是最常见的状态码它表示成功提交了请求正在返回所请求的资源。一段文本形式的“原因短语”进一步说明响应状态。 响应示例的其他一些要点如下
Server消息头中包含一个旗标指明所使用的web服务器软件。有时还包含其他消息如所安装的模块和服务器操作系统其中包含的信息可能并不准确。Set-cookie消息头向浏览器发送另一个cookie它将在随后向服务器发送的请求中由Cookie消息头返回Pragma消息头指示浏览器不要将响应保存在缓存中。Expires消息头指出响应内容已经过期因此不应保存在缓存中。当返回动态内容时常常发送这些指令以确保浏览器随时获得最新内容。几乎所有的HTTP响应在消息头后的空白行下面都包含消息主体Content-Type消息头表示这个消息主体中包含一个HTML文档。Content-Length消息头规定消息主体的字节长度。
3 HTTP方法 当渗透测试人员攻击Web应用程序时几乎肯定会遇到最常用的方法GET和POST。
GET方法的作用在于获取资源。它可以用于URL查询字符串的形式向所请求的资源发送参数。POST方法的主要作用是执行操作。使用这个方法可以在URL查询字符串与消息主体中发送请求参数。 此外还有其他方法
HEAD。这个方法的功能与Get方法相似不同之处在于服务器不会在其响应中返回消息主体。服务器返回的消息头应与对应GET请求的消息头相同。这种方法可用于检查某一资源在向其提交GET请求前是否存在。TRACE。这种方法主要用于诊断服务器应在响应主体中返回其收到的请求消息的具体内容。这种方法可用于检测客户端与服务器之间是否存在任何操纵请求的代理服务器。OPTIONS。这种方法要求服务器报告对某一特殊资源有效的HTTP方法。服务器通常返回一个包含ALLOW消息头的响应并在其中列出所有有效的方法。PUT。这个方法试图使用包含在消息主体中的内容向服务器上传指定资源。
4 URL URLUniform Resource Locator统一资源定位符是标识web资源的唯一标识符通过它即可获取其标识的资源。最常用的URL格式如下
5 HTTP消息头 HTTP支持许多不同的消息头一些消息头可用在请求与响应中而其他一些消息头只能专门用在某个特定的消息中。
5.1 常用消息头
Connection这个消息头告诉通信的另一端在完成HTTP传输后是关闭TCP连接还是保持连接开放以接受其他消息。Content-Encoding这个消息头为消息主体中的内容指定编码形式。为了尽快传输特指传输之前的编码方案。Content-Length这个消息头用于规定消息主体的字节长度。HEAD语法的响应例外它在对应的GET请求的响应中指出主体的长度Transfer-Encoding这个消息头指的是传输时使用的编码形式。
5.2 请求消息头
Accept这个消息头用于告诉服务器客户端愿意接受哪些内容如图像类型等。Accept-Encoding这个消息头用于告诉服务器客户端愿意接受哪些内容编码对应Content-Encoding。Authorization这个消息头用于为一种内置HTTP身份验证向服务器提交证书。Cookie这个消息头用于向服务器提交它之前发布的cookie。Host这个消息头用于指定出现在所请求的完成URL中的主机名称。IF-Modified-Since这个消息头用于说明浏览器最后一次收到所请求的资源的时间。如果自那以后资源没发生变化服务器就会发出一个带状态码304的响应指示客户端使用资源的副本。IF-None-Match这个消息头用于指定一个实体标签。实体标签是一个说明消息主体内容的标识符。当最后一次收到所请求的资源时浏览器提交服务器发布的实体标签服务器可以使用实体标签确认浏览器是否使用资源的缓存副本。Origin。这个消息头用在跨域Ajax请求中用于指示提出请求的域。Referer。这个消息头用于指示提出当前请求的原始URL。User-Agent。这个消息头提供域浏览器或生成请求的其他客户端软件有关信息。
5.3 响应消息头
Access-Contro-Allow-Origin。这个消息头用于指示是否通过跨域Ajax请求获取资源。Cache-Control。这个消息头用于向浏览器传送缓存指令。ETag。这个消息头用于指示一个实体标签客户端可在将来的请求中提交这个标识符获得和IF-None-Match消息头相同的资源通知服务器浏览器当前缓存中保存的是哪个版本的资源。Expires。这个消息头用于向浏览器说明消息主体内容的有效时间。在这个时间之前浏览器可以使用这个资源的缓存副本。Location。这个消息头用于在重定向那些状态码以3开头的响应中说明重定向的目标。Pragma。这个消息头用于向浏览器传送缓存指令。Server。这个消息头提供所使用的web服务器软件的相关信息。Set-Cookie。这个消息头用于向浏览器发布cookie浏览器会在随后的请求中将其返回给服务器。WWW-Authenticate。这个消息头用在带401状态码的响应中提供于服务器所支持的身份验证类型有关的信息。X-Frame-Options。这个消息头指示浏览器框架是否及如何加载当前响应。
6 cookie 服务器使用cookie机制向客户端发送数据客户端保存cookie并将其返回给服务器。具体而言服务器使用Set-Cookie响应消息头发布cookie 然后用户的浏览器自动在随后的请求包中添加cookie消息头发给服务器 cookie一般由一个名/值对构成但也可包含任何不含空格的字符串。可以在服务器响应中使用几个Set-Cookie消息头发布多个cookie并可在一个cookie消息头中用分号分隔不同的cookie将它们全部返回给服务器。
7 状态码 每个HTTP响应消息都必须在第一行包含一个状态码说明请求结果。根据状态码的一个位数字可将状态码分为以下5类。
1XX——提供信息。2XX——请求被成功提交。3XX——客户端被重定向到其他资源。4XX——请求包含某种错误。5XX——服务器执行请求时遇到错误。
8 HTTP代理 HTTP代理服务器是一个协调客户端浏览器于目标web服务器之间访问的服务器。当配置浏览器使用代理服务器时它会将请求提交到代理服务器代理服务器再将请求传送到相关web服务器并将响应返回给浏览器。 值得注意的是如果使用代理服务器HTTP的工作机制会出现两方面的差异
当浏览器向代理服务器发布HTTP请求时它会将完整的URL包括协议前缀http://与服务器主机名称在非标准URL中还包括端口号插入到请求中。代理服务器将提取主机名称和端口并使用这些信息将请求只想正确的目标web服务器。当使用HTTPS时浏览器无法与代理服务器进行SSL握手浏览器必须将代理作为一个纯粹的TCP级中继由代理传递浏览器与目标web服务器之间的所有网络数据并与浏览器进行正常的SSL握手。
9 HTTP身份验证 HTTP拥有以下机制用户身份验证机制
Basic。这是一种非常简单的身份验证机制它在请求头中以Base64编码字符串的形式发送用户证书。NTLM。一种质询-响应式机制它使用某个windows NTLM协议版本。Digest。一种质询-响应式机制它随同用户证书一起使用一个随机值MD5校验和。 ❗️❗️❗️因特网上的web应用程序基本很少使用这些身份验证机制。