1. 概述

以前从来没有写博客的习惯的,但是为什么这次要开始写呢?因为我们的老师表示:如果你写技术性博客来记录你的学习进程,你将会受益匪浅,还会有无条件的考试加分。但是,我的为人,你懂得,我怎么会为一点点加分而写呢?当然是为了分享交流而写啦。说实话,写博客的时候,有些内容尽管看了许多文档我仍然无法理解,所以可能会有纰漏、偏差之处,还望大家能够纠正。开场白就这些,进入正题。


第一节:概述

Outline:

    1. WWW的简介

    2. URL, URI简介

    3. HTTP简介

    4. Web2.0程序设计简介


1.WWW的简介

    1.1 概念:WWW,即World Wide Web(英文的简称为WWW或W3,通常也会称为the web,中国简称之为3W),是一个通过互联网访问的由相互连接的超文本文档组成的系统。(The World Wide Web (abbreviated as WWW or W3,[3] commonly known as the web) is a system of interlinked hypertext documents accessed via the Internet.)

    1.2 发明者:蒂姆·博纳斯·李(Tim Berners-Lee) 和 罗伯特·卡里奥(Robert Cailliau)。

    1.3 发明的目的:使用超文本来链接并获取各种各样的信息,使之成为一个在节点中的用户可以随意浏览的网页。(Use hypertext to link and access information of various kinds as a web of nodes in which the user can browse at will).

    /* 工科学生在学习每一个东西之时,都应审问:这个东西发明是为了什么?一个投入应用的发明发明一定是要切实解决问题的,而不是凭空的主观创造或是个人喜好而得来的。*/

    1.4 三项核心技术:HTTP(Hypertext Transfer Protocol)、URI(Uniform resource Identifier)、HTML(Hypertext makeup Language)。

    // 以上的知识都来自于维基百科


2.URL、URI

    2.1 URL:统一资源定位符,通过资源的“地址”属性对资源的一种引用(标识)。

    2.2 URN:统一资源名,在特定命名空间内通过“名称”属性对资源的引用(标识)。

    2.3 URI:统一资源标识符,对资源通过其某种属性进行标识的引用。

    2.4 三者的关系:在传统观点中,URL、URN等被视为URI子集,而在专业术语中,并不存在URL这一正式的专业术语,因此传统观点被认为是不准确的。但由于URL的普遍使用,因此还需要对三者进行区分。

         URL、URN分别是通过“地址”、“名称”对资源进行定位。这个资源我们可以类比为C++程序中的变量在内存中所占资源一样,URL是该变量的指针,URN是变量名,URN属于某一命名空间,无论通过URL还是URN都可以唯一引用到该变量,只是他们所通过的获取的方式不同,即他们标识了获取的主机制(identify the primary access mechanism)。并且在行为上,URL与名称无关与位置相关,就好像某一内存地址可以有多个引用。如 int *reference = *actual; delete actual;(为了URN相对比,确保命名唯一性)reference 和actual名称不同,但是指向同一地址。而actual = new int();则是反映了URN的特性,与地址无关只与名称有关。

         总体来说,URI重在U,只要某个属性是唯一的,即标识方式是统一的,也可以称该属性为主键,我们就可以以其为索引值,进行资源地位。比如我们为所有的资源赋予唯一的ID(当然, 这不现实),我们可以用统一资源ID来获取一个资源。


3.HTTP

    3.1 HTTP(Hypertext Transfer Protocol,超文本传输协议):是一个用于分布、协同、超媒体信息系统的应用层协议。 
    3.2 HTTP标准:目前最为广泛的HTTP标准是互联网协会(Internet Society)颁布的RFC(request for comment) 2616定义的HTTP/1.1标准。
    3.3 HTTP/1.1的方法:GET、POST、PUT、DELETE、HEAD、TRACT、OPTIONS、CONNECT(、PATCH)。
          这些方法按作用效果来分,可以分为“安全方法”和“非安全方法”,按照多次相同操作副作用是否相同,可以分为幂等(与数学意义十分接近)方法和非幂等方法。
    安全方法:GET、HEAD方法,他们只有“获取”这一个效果。(但是他们会产生副作用)。
    幂等方法:GET、HEAD、PUT、DELETE,而OPTIONS和TRACE是不产生副作用的,因此他们也是幂等的(0的n次方为仍为0)。
    3.4 几种方法的简介(均来自RFC 2616,第9章)
         作用:GET       将返回指定的URI所定义的任何信息,或其所定义的处理过程的处理结果。简而言之:查询。
                   POST     将新的实体附加在URI所定义的资源上,可以用来修改现有资源、发布公告、提供数据、拓展数据库等。简而言之:增改。
                   PUT       将实体储存到URI下,如果URI已有资源则替换之,反之新建之。简而言之:设换。
                   DELETE 将URI下实体删除,此方法允许被重载。简而言之:删除。
                   HEAD    除不返回信息体以外,作用与GET一致。简而言之:查“前言”。
                   TRACT   用于调用远程应用层的消息请求循环,请求的最后接受者应给用户返回一个OK反应的实体.(不太懂,有的解释为查询URI下资源的最新变更)。
                   OPTIONS 查询URI定义的请求/响应链中支持的交互操作。简而言之:查操作。
                   CONNECT 定义了一个保留的方法,以能够动态切换为一个隧道的代理来使用。
    3.5 简单的使用
          使用环境为Linux(Ubuntu),工具为telnet。
          
          命令行中或者文字界面下打开telnet ,然后输入open [hostname] [port],比如这里打开的是中山大学的主机,以80端口(Http协议默认使用80端口)。
          然后输入OPTIONS * HTTP/1.1 来查询一下可以进行的操作,之后下一行Host: [hostname]输入主机名(由于HTTP/1.1支持虚拟化,所以一个实体主机可能有多个虚拟主机)。再来一个换行,表示输入结束。
          返回结果就是:有GET、HEAD、POST。
          继续进行HEAD操作。
         
          我们能看到这个网页的头信息(解读refers to http://kb.cnblogs.com/page/92320/)。第一行是返回的状态码,200成功。第二行内容类型,文本/html的形式。第三行是标明服务器是否支持指定范围的请求和请求的分段类型(不太理解),这里是字节。:Entity Tag,实体标签。之后和字面意义一样,Date是指服务器的时间,而不是请求者的本地时间(所以有时候不同步)。

4. Web2.0程序设计简介

   4.1 Web2.0简介(暂坑掉)。

    4.2 所需要技能:Html, Html5, JavaScript, Python, torndado等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值