`
bukebuhao
  • 浏览: 87974 次
  • 性别: Icon_minigender_1
  • 来自: 绍兴
社区版块
存档分类
最新评论

HTTP认识-HTTP学习

阅读更多

【HTTP 官方定义】

超文本传输协议(HTTP)是一种为分布式,合作式,多媒体信息系统服务,面向应用层的 协议。

The Hypertext Transfer Protocol (HTTP) is an application-level protocol for distributed, collaborative, hypermedia information systems.

HTTP协议是一种请求/响应协议。 与服务器建立连接后,客户端以请求方法,URI和协议版本号,然后紧接着跟随一个类MIME(MIME-like)消息,这个类MIME消息包括请求修饰 符,客户信息和可能的消息主体。服务器以一个状态行并跟随一个类MIME(MIME-like)消息响应,状态行包含消息的协议版本和成功出错的状态码, 类MIME消息包含服务器信息,实体元信息,和可能的实体。

The HTTP protocol is a request/response protocol. A client sends a request to the server in the form of a request method, URI, and protocol version, followed by a MIME-like message containing request modifiers, client information, and possible body content over a connection with a server. The server responds with a status line, including the message's protocol version and a success or error code, followed by a MIME-like message containing server information, entity metainformation, and possible entity-body content.

【个人的理解】

实际上就是网络消息传递的规则,信息交换的规则。还是参照实际例子学习比较直接,深入。用firebug查看一下,请求头和响应头如下:

橘黄色就是请求方法,协议版本号,状态码,红色标记的就是MIME消息,具体的每个字段的含义下次再介绍啦!

【HTTP URL 格式】

The "http" scheme is used to locate network resources via the HTTP protocol. This section defines the scheme-specific syntax and semantics for http URLs.

http_URL = "http:" "//" host [ ":" port ] [ abs_path [ "?" query ]]

http 表示要通过HTTP协议来定位网络资源;host表示合法的Internet主机域名或者IP地址;port指定一个端口号,为空则使用缺省端口 80;abs_path指定请求资源的URI;query就是请求参数。

eg:

http://www.onccc.com/search/product/%E9%A5%B0%E5%93%81_1.html?goodsTypeId=&productProperty=&displayMode=default&supplyType=0&markeyId=&probativeFlag=1&idInfoFlag=1&orderInformation=0

分解如下:

scheme =http

host =www.onccc.com

port =80

abs_path =search/product/%E9%A5%B0%E5%93%81_1.html

query =goodsTypeId=&productProperty=&displayMode=default&supplyType=0&markeyId=&probativeFlag=1&idInfoFlag=1&orderInformation=0

其中要注意的点:

  1. url中的scheme和host大小写不区分;

  2. abs_path中是以"/"做为分割符号,而且必须是ASCII,对于非ASCII,可对其encode编码,例如上面的“%E9%A5%B0%E5%93%81”就是“饰品”的utf-8转码,以十六进制显示

  3. URL字符长度理论上是没限制,如果过长服务器会返回414状态码,URL长度主要影响浏览器和后台服务器,其中ie6最长2047,因此最好不要超过2047个字符

【URI URL URN区别】

   A URI can be further classified as a locator, a name, or both.  The
   term "Uniform Resource Locator" (URL) refers to the subset of URI
   that identify resources via a representation of their primary access
   mechanism (e.g., their network "location"), rather than identifying
   the resource by name or by some other attribute(s) of that resource.
   The term "Uniform Resource Name" (URN) refers to the subset of URI
   that are required to remain globally unique and persistent even when
   the resource ceases to exist or becomes unavailable.

   可以这样理解URI就是一个人的唯一标识,URL就是人的地址,URN是人的身份证
   至于网上所说得URL和URI的区别,目前意义不大的。现在只需要知道一下几点就可了

   1.URI的语法 [scheme:] scheme-specific-part
 
        eg:http://www.onccc.com/ 其中 scheme=http;scheme-specific-part=//www.onccc.com/
         kefu@onccc.com 其中scheme=null,scheme-specific-part=kefu@onccc.com
   2.URI又分不透明的(opaque)和分层(hierarchical)的两类。
     
      不透明的URI指scheme-specific-part不是以‘/’开头的绝对的URI; eg:kefu@onccc.com
      分层的URI是scheme-specific-part以‘/’开头的绝对的URI或相对的URL,eg:http://www.onccc.com/product/index.html, /product/index.html
      分层的URI的scheme-specific-part符合[//authority] [path] [?query] [#fragment] eg:http://www.onccc.com/product/index.html?v=t
      authority又分基于服务器和授权机构,授权机构就不论述了,基于服务器以‘//’开头的,格式<userinfo>@<host>:<port>
      其他的更详细的,可参看http://www.ietf.org/rfc/rfc2396.txt (3.2.2. Server-based Naming Authority)




  3. URI的标准化normalize和分解resolution,实际意思就是把相对路径转换成绝对简单路径以及反转

      假定目录product直接位于根目录之下,product有子目录list和detail,detail有文件title.html,list是当前目录。
      为了显示title.html中的内容,你可能输入type \product\.\detail\title.html。这种不是最简单的。
      实际上只要输入\product\detail\title.html,就是最简单标准的。反之就是反解。

 4. 其他更多的请参看http://eastsun.iteye.com/blog/37013


【参考学习】

在线了解http协议 http://www.w3.org/Protocols/rfc2616/rfc2616-sec1.html#sec1.4

【后续】

主要是介绍常见的消息头含义以及web开发中常见的问题

分享到:
评论

相关推荐

    文档主题的半监督分类问题-pyhon-机器学习

    (一)认识数据 数据集描述:对于每个文本数据集,D文档的数量,W是文档字典集中单词数量,N是数据中所有单词数量(NNZ为非零数据的数量),在分词器、去无用词之后,去重字典。 Bag of Words Data Set数据集网站...

    Bluetooth_4.3-master.rar

    如果还不对BLEandroid蓝牙的认识以及API有相关的认识:,那么请访问我的博客: http://blog.csdn.net/androidstarjack/article/details/60468468 笔者对蓝牙进行了三篇总结: 1.深入了解Android蓝牙Bluetooth——...

    英语单词字典-crx插件

    当前页面查询不认识的英语单词,学习英语好帮手 簡體中文&lt;--&gt;英文 选择单词,當前頁面顯示結果 Chinese &lt;-&gt; English Dictionary select a word , POP UP in CURRENT page ---------------------------...

    Access2003中文版应用基础教程part2

    本书理论与实践相结合,解说精细、通俗易懂,通过本书的学习,不仅可使读者对最新版的Access 2003软件有深刻的了解,还可以使读者成为应用数据库的高手。书中的相关范例文件可从网站...

    Access2003中文版应用基础教程part1

    本书理论与实践相结合,解说精细、通俗易懂,通过本书的学习,不仅可使读者对最新版的Access 2003软件有深刻的了解,还可以使读者成为应用数据库的高手。书中的相关范例文件可从网站...

    Linux服务器配置与管理项目7--WWW服务器配置与管理.pptx

    【学习目标】 (1)了解WWW服务器在网络中的作用。 (2)掌握WWW服务器的安装过程。 (3)掌握各种WWW服务器功能的配置。 (4)掌握Web网站和虚拟主机的配置。 Linux服务器配置与管理项目7--WWW服务器配置与管理...

    斯坦福大学 2014机器学习教程中文笔记

    在过去的十年中,机器学习帮助我们自动驾驶汽车有效语音识别网 络搜索,并极大地提高了人类基因组的认识。机器学习是当今非常普遍你可能会使用这一 络搜索,并极大地提高了人类基因组的认识。机器学习是当今非常普遍...

    入门学习Linux常用必会60个命令实例详解doc/txt

    要想真正理解Linux系统,就必须从Linux命令学起,通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样,但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令...

    《良葛格Java JDK 5.0学习笔记》.rar

    包含java特性、java学习方法、网络资源汇总、jdk下载和安装、path与CLASSPATH的设置、java基本语法、关于对象的认识、数组、字符串(String类))、Ant简介、JUnit简介。 作者:林信良(网络化名良葛格) 学历:台湾大学...

    faces:开始认识与您一起工作或学习的人

    面Kong开始认识与您一起工作或学习的人。 应用程序可以帮助人们学习面Kong,将他们的名字和姓氏与他们的照片结合在一起。 它源自公司环境,在公司环境中,经过3年的工作,我几乎不记得我的一些同事的名字。安装先决...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

    个人网站:http://openhome.cc 目录 《java jdk 7学习笔记》 chapter1 java平台概论 1 1.1 java不只是语言 2 1.1.1 前世今生 2 1.1.2 三大平台 5 1.1.3 jcp与jsr 6 1.1.4 建议的学习路径 7 1.2 jvm/...

    java jdk8 学习笔记

    7.Web容器是Servlet/JSP唯一认识的HTTP服务器,是使用Java撰写的应用程序,运行于JVM之上。 8.JVM让Java可以跨平台,不同的系统平台有不同的JVM,它们都认识.class文件。Java编译语言将Java代码编译成.class文件...

    Linux服务器配置与管理项目8--FTP服务器配置与管理.pptx

    【学习目标】 (1)了解FTP服务器在网络中的作用。 (2)掌握FTP服务器的安装过程。 (3)掌握匿名访问FTP服务器的配置方法。 (4)掌握具名访问FTP服务器的配置方法。 (5)掌握FTP服务器的安全管理方法。 Linux...

    mini-query-from-vanilla-js

    学习能力 用Javascript创建模块化代码 在JavaScript中实现CSS选择器库 在Javascript中实现DOM操作库 在Javascript中实现事件分发库 在Javascript中实现HTTP请求库 理解并重新实现jQuery作为各种单独库的工具带 概括 ...

    Node.js快速学习入门

    本教程主要是面向想学习Node.js的初学者,在通过本教程的学习后,能够对Node.js有一个初步的认识并能比较熟练地使用Node.js。 由于教程内容太长,不方便在 Word内,请大家访问在线教程: ...

    十天学会ASP.net--我认为ASP.NET比ASP难很多,希望大家做好准备

    我说的这点几乎称不上是在说一种语言,一种语言的学习不仅仅需要学习语法,还需要学习语言特色,希望大家有空还是买一本C#的书来好好研究一下C#作为一种新的语言的特性吧。 十天学会ASP.net(2) 作者:佚名 阅读人次...

    c#学习笔记.txt

    51099在线学习网 http://www.51099.com 1, 结构(struct) 与 类(class) [attributes] [modifiers] struct identifier [:interfaces] body [;] 结构与类很相似,都表示可以包含数据成员和函数成员的数据结构。与类...

Global site tag (gtag.js) - Google Analytics