关于HTTP的介绍

本文介绍了HTTP协议的诞生、作用及其在服务器与客户端之间的应用。详细讲解了HTTP报文结构、首部字段,强调了HTTP的安全隐患,如未验证通信方身份、无法证明报文完整性,并介绍了HTTPS作为解决方案。此外,还概述了构建Web内容的技术,包括HTML、CSS和JavaScript的基本概念。
摘要由CSDN通过智能技术生成

一、HTTP协议

         1、HTTP的诞生及作用

        1989 年 3 月,互联网还只属于少数人。在这一互联网的黎明期,HTTP诞生了。最开始,CERN(欧洲核子研究 组织)的    蒂姆 • 伯纳斯 - 李(TimBernersLee)博士提出了一种能让远隔两地的研究者们共享知识的设想,最初基本理念是:借助多文 档之间相互关联形成的超文本(HyperText)连成可相互参阅的WWW(World Wide Web,万维网)。现在已提出了 3 项 WWW  构建技术,分别是:把 SGML(Standard Generalized Markup Language,标准用标记语言)作为页面的文本标记语   言  HTML(HyperText Markup Language,超文本标记语言);作为文档协议的 HTTP ;指定文档所在地址的       URL(Uniform  Resource Locator,统一资源定位符)

         HTTP 正式作为标准被公布是在 1996 年的 5 月,版本被命名为HTTP/1.0,并记载于 RFC1945。虽说是初期标准,但该协 议标准至今仍被广泛使用在服务器端。与HTTP协议密切的协议有三类:IP、TCP、DNS

                    客户端:

                 HTTP协议职责:生成针对目标web服务器的HTTP请求报文

                TCP协议职责:为方便通讯,将HTTP请求报文分割成报文段

                 IP协议职责:搜索对方地址,一边中转一边发送

                       服务端:

                HTTP协议职责:对Web服务器请求的内容的处理

                TCP协议职责:接收报文段,并重组,按序号医院来的顺序重组请求报文

                IP协议职责:搜索对方地址,一边中转一边发送

         2、HTTP如何被运用在服务器与客户端之间

                         

        3、HTTP用来下达命令的方法

                  

方法

说明

支持的 HTTP 协议版本

GET

获取资源

1.0、1.1

POST

传输实体主体

1.0、1.1

PUT

传输文件

1.0、1.1

HEAD

获得报文首部

1.0、1.1

DELETE

删除文件

1.0、1.1

OPTIONS

询问支持的方法

1.1

TRACE

追踪路径

1.1

CONNECT

要求用隧道协议连接代理

1.1

LINK

建立和资源之间的联系

1.0

UNLINE

断开连接关系

1.0

二、HTTP报文

        1、报文结构

                    

                     上面为请求报文,下面为响应报文。

                     

                      请求报文(上)和响应报文(下)的示

                       

                    请求行:包含用于请求的方法,请求URI 和 HTTP 版本

                    状态行:包含表明响应结果的状态码,原因短语和 HTTP 版本。

                    首部字段包含表示请求和响应的各种条件和属性的各类首部。一般有 4 种首部,分别是:通用首部、请求首部、响                      应首部和实体首部。其他

三、HTTP首部

        1、HTTP/1.1首部字段一览

               通用首部字段

                           

首部字段名

说明

Cache-Control

控制缓存的行为

Connection

逐跳首部、连接的管理

Date

创建报文的日期时间

Pragma

报文指令

Trailer

报文末端的首部一览

Transfer-Encoding

指定报文主体的传输编码方式

Upgrade

升级为其他协议

Via

代理服务器的相关信息

Warning

错误通知

             请求首部字段 

                    

首部字段名

说明

Accept

用户代理可处理的媒体类型

Accept-Charset

优先的字符集

Accept-Encoding

优先的内容编码

Accept-Language

优先的语言(自然语言)

Authorization

Web认证信息

Expect

期待服务器的特定行为

From

用户的电子邮箱地址

Host

请求资源所在服务器

If-Match

比较实体标记(ETag)

If-Modified-Since

比较资源的更新时间

If-None-Match

比较实体标记(与 If-Match 相反)

If-Range

资源未更新时发送实体 Byte 的范围请求

If-Unmodified-Since

比较资源的更新时间(与If-Modified-Since相反)

Max-Forwards

最大传输逐跳数

Proxy-Authorization

代理服务器要求客户端的认证信息

Range

实体的字节范围请求

Referer

对请求中 URI 的原始获取方

TE

传输编码的优先级

User-Agent

HTTP 客户端程序的信息

                响应首部字段 

                 

首部字段名

说明

Accept-Ranges

是否接受字节范围请求

Age

推算资源创建经过时间

ETag

资源的匹配信息

Location

令客户端重定向至指定URI

Proxy-Authenticate

代理服务器对客户端的认证信息

Retry-After

对再次发起请求的时机要求

Server

HTTP服务器的安装信息

Vary

代理服务器缓存的管理信息

WWW-Authenticate

服务器对客户端的认证信息

                实体首部字段

 

首部字段名

说明

Allow

资源可支持的HTTP方法

Content-Encoding

实体主体适用的编码方式

Content-Language

实体主体的自然语言

Content-Length

实体主体的大小(单位:字节)

Content-Location

替代对应资源的URI

Content-MD5

实体主体的报文摘要

Content-Range

实体主体的位置范围

Content-Type

实体主体的媒体类型

Expires

实体主体过期的日期时间

Last-Modified

资源的最后修改日期时间

     其他首部字段

X-Frame-Options

X-XSS-Protection

DNT

P3P

                                                                    X-Frame-Options

      首部字段 X-Frame-Options 属于 HTTP 响应首部,用于控制网站内容在其他Web 网站的 Frame 标签内的显示问题。其主要目的是为了防止点击劫持(clickjacking)攻击。

首部字段 X-Frame-Options 有以下两个可指定的字段值。

DENY:拒绝

SAMEORIGIN :仅同源域名下的页面(Top-level-browsingcontext)匹配时许可。(比如,当指定 http://hackr.jp/sample.html

页面为 SAMEORIGIN 时,那么 hackr.jp 上所有页面的 frame 都被

允许可加载该页面,而 example.com 等其他域名的页面就不行了)


                                                                  X-XSS-Protection

      首部字段 X-XSS-Protection 属于 HTTP 响应首部,它是针对跨站脚本攻击(XSS)的一种对策,用于控制浏览器 XSS 防护机制的开关。

首部字段X-XSS-Protection 可指定的字段值如下。

0   :将 XSS 过滤设置成无效状态

1   :将 XSS 过滤设置成有效状态


                                                                  DNT

       首部字段DNT 属于 HTTP 请求首部,其中 DNT 是 Do Not Track 的简称,意为拒绝个人信息被收集,是表示拒绝被精准广告追踪的一种方法。

首部字段DNT 可指定的字段值如下。

0   :同意被追踪

1   :拒绝被追踪

                                                                  P3P

      首部字段 P3P 属于 HTTP 相应首部,通过利用 P3P(The Platform for Privacy Preferences,在线隐私偏好平台)技术,可以让 Web 网站上的个人隐私变成一种仅供程序可理解的形式,以达到保护用户隐私的目的。

四、确保web安全的HTTPS

         1、HTTP的缺点

                  通信使用明文(不加密),内容可能会被窃听不验证通信方的身份,因此有可能遭遇伪装无法证明报文的完整性,                所以有可能已遭篡改这些问题不仅在 HTTP 上出现,其他未加密的协议中也会存在这类问题。除此之外,HTTP 本身还                有很多缺点。而且,还有像某些特定的 Web 服务器和特定的 Web 浏览器在实际应用中存在的不足(也可以说成是脆弱              性或安全漏洞),另外,用 Java 和 PHP 等编程语言开发的Web 应用也可能存在安全漏洞。

                         1.1  不验证通信方的身份就可能遭遇伪装

                  HTTP 协议中的请求和响应不会对通信方进行确认。也就是说存在“服务器是否就是发送请求中 URI 真正指定的主                 机,返回的响应是否真的返回到实际提出请求的客户端”等类似问题。任何人都可发起请求。在 HTTP 协议通信时,由              于不存在确认通信方的处理步骤,任何人都可以发起请求。另外,服务器只要接收到请求, 不管对方是谁都会返回一个               响应(但也仅限于发送端的 IP 地址和端口号没有被 Web 服务器设定限制访问的前提下)。

                          1.2   无法证明报文完整性,可能已遭篡改

              

                  所谓完整性是指信息的准确度。若无法证明其完整性,通常也就意味着无法判断信息是否准确,接收到的内容可能                有误,由于 HTTP 协议无法证明通信的报文完整性,因此,在请求或响应送出之后直到对方接收之前的这段时间内,即              使请求或响应的内容遭到篡改,也没有办法获悉。换句话说,没有任何办法确认,发出的请求/ 响应和接收到的请求 /                  响应是前后相同的。

                                         


           2、HTTP+ 加密 + 认证 + 完整性保护 =HTTPS

                           如果在 HTTP 协议通信过程中使用未经加密的明文,比如在 Web 页面中输入信用卡号,如果这条通信线路遭                       到窃听,那么信用卡号就暴露了。另外,对于 HTTP 来说,服务器也好,客户端也好,都是没有办法确认通信方                        的。因为很有可能并不是和原本预想的通信方在实际通信。并且还需要考虑到接收到的报文在通信途中已经遭到窜                      改这一可能性。为了统一解决上述这些问题,需要在 HTTP 上再加入加密处理和认证等机制。我们把添加了加密                        及认证机制的 HTTP 称为 HTTPS(HTTPSecure)。

五、构建web内容的技术

        1、HTML

                     HTML(HyperTextMarkup Language,超文本标记语言)是为了发送Web 上的超文本(Hypertext)而开发的               标记语言。超文本是一种文档系统,可将文档中任意位置的信息与其他信息(文本或图片等)建立关联,即超链接文                  本。标记语言是指通过在文档的某部分穿插特别的字符串标签,用来修饰文档的语言。我们把出现在 HTML 文档内的                  这种特殊字符串叫做 HTML 标签(Tag)。平时我们浏览的Web 页面几乎全是使用 HTML 写成的。由HTML 构成的文              档经过浏览器的解析、渲染后,呈现出来的结果就是 Web 页面。

               HTML文档示例

                                                                     

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset

<title>hackr.jp</title>

<style type="text/css">

.logo {   padding: 20px;   text-align: center;

}

</style> </head>

<body>

<div class="logo">

  <p><img src="photo.jpg" alt="photo" width="240" height="12

  <p><img src="hackr.gif" alt="hackr.jp" width="240" height=

  <p><a href="http://hackr.jp/">hackr.jp</a> </p>

</div>

</body>

</html>

           2、css      

                          CSS(Cascading Style Sheets,层叠样式表)可以指定如何展现 HTML 内的各种元素,属于样式表标准之                           一。即使是相同的HTML 文档,通过改变应用的 CSS,用浏览器看到的页面外观也会随之改变。CSS 的理念就是                        让文档的结构和设计分离,达到解耦的目的。                                                                                                                                            示例

                                   .logo {   padding: 20px;   text-align: center;

                                              }

                            可在选择器(selector).logo的指定范围内,使用 {} 括起来的声明块中写明的 padding: 20px 等声明语句应                        用指定的样式。可通过指定 HTML 元素或特定的class、ID 等作为选择器来限定样式的应用范围。

            3、javascript

                          利用javascript能够实现动态的HTML页面,利用 DOM(DocumentObjectModel,文档对象模型)可指定欲                       发生动态变化的 HTML 元素。

                          

<body>

          <h1>繁琐的Web安全</h1>

          <p>第Ⅰ部分 Web的构成元素</p>

          <p>第Ⅱ部分 浏览器的安全功能</p>

          <p>第Ⅲ部分 接下来发生的事</p>

</body>


<script type="text/javascript">

  var content =document.getElementsByTagName('P');  content[2].style.color = '#FF0000'; </script>


   document.getElementsByTagName('P') 语句调用 getElementsByTagName函数,从整个 HTML 文档(document object)内取出 P 元素。接下来的 content[2].style.color = '#FF0000' 语句指定 content 的索引为 2(第 3 个)的元素的样式颜色改为红色(#FF0000)。DOM内存在各种函数,使用它们可查阅 HTML 中的各个元素。

             4、web应用

                             Web 应用是指通过Web 功能提供的应用程序。比如购物网站、网上银行、SNS、BBS、搜索引擎和 e-                                   learning 等。互联网(Internet)或企业内网(Intranet)上遍布各式各样的 Web 应用。原本应用HTTP 协议                           的 Web 的机制就是对客户端发来的请求,返回事前准备好的内容。可随着 Web 越来越普及,仅靠这样的做法                           已不足以应对所有的需求,更需要引入由程序创建 HTML 内容的做法。类似这种由程序创建的内容称为动态内                            容,而事先准备好的内容称为静态内容。Web 应用则作用于动态内容之上。

                            







 



    


        






  



                      

                       

                 



                       



 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值