最近观看HTTP权威指南。这本书是一个小更,欲了解更多详细信息,我们不能照顾。但一些基本概念仍然应该清楚。在这里,我整理:
  • HTTP——因特网的多媒体信使

HTTP 使用的是可靠的传输数据协议,因此即使数据来自地球的还有一端。它也可以确保数据在传输的过程中不会被损坏或产生混乱。

这样,用户在訪问信息时就不用操心其完整性了,因此对用户来说,这是件好事。而对因特网应用程序开发者来说也相同如此,由于这样就无需操心 HTTP 通信会在传输过程中被破坏、复制或产生畸变了。开发者可以专注于应用程序特有细节的编写,而不用考虑因特网中存在的一些缺陷和问题。



  • Webclient和server

Web 内容都是存储在 Web server上的。

Web server所使用的是 HTTP 协议。因此常常会被称为 HTTP server。

这些 HTTP server存储了因特网中的数据。假设HTTP client发出请求的话,它们会提供数据。client向server发送 HTTP 请求,server会在 HTTP 响应中回送所请求的数据,例如以下图所看到的。HTTP client和 HTTPserver共同构成了万维网的基本组件。





可能你每天都在使用 HTTP client。最常见的client就是 Web 浏览器,比方微软的Internet Explorer 或网景的 Navigator。

Web 浏览器向server请求 HTTP 对象,并将这些对象显示在你的屏幕上。

浏览一个页面时(比方 http://www.oreilly.com/index.html) ,浏览器会向serverwww.oreilly.com 发送一条 HTTP 请求 。server会去寻找所期望的对象(在这个样例中就是 /index.html) ,假设成功。就将对象、对象类型、对象长度以及其它一些信息放在
HTTP 响应中发送给client。

  • 资源

Web server是 Web 资源(Web resource)的宿主。Web 资源是 Web 内容的源头。最简单的 Web 资源就是 Web server文件系统中的静态文件。这些文件能够包括随意内容:文本文件、HTML 文件、微软的 Word 文件、Adobe 的 Acrobat 文件、JPEG 图片文件、AVI 电影文件,或全部其它你能够想到的格式。但资源不一定非得是静态文件。资源还能够是依据须要生成内容的软件程序。这些动态内容资源能够依据你的身份、所请求的信息或每天的不同一时候段来产生内容。它们能够为你显示照相机中活生生的照片,也能够帮你进行股票交易,搜索房产数据库,或者从在线商店中购买礼物。





总之。全部类型的内容来源都是资源。包括公司销售预測电子表格的文件是一种资源。扫描本地公共图书馆书架的 Web 网关是一种资源。

因特网搜索引擎也是一种资源。

  • 媒体类型

因特网上有数千种不同的数据类型。HTTP 细致地给每种要通过 Web 传输的对象都打上了名为 MIME 类型(MIME type)的数据格式标签。最初设计 MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)是为了解决在不同的电子邮件系统之间搬移报文时存在的问题。MIME 在电子邮件系统中工作得很好,因此 HTTP 也採纳了它。用它来描写叙述并标记多媒体内容。Web server会为全部 HTTP 对象数据附加一个 MIME 类型(參见图 1-3) 。当 Web浏览器从server中取回一个对象时,会去查看相关的
MIME 类型,看看它是否知道

应该怎样处理这个对象。大多数浏览器都能够处理数百种常见的对象类型:显示图片文件、解析并格式化 HTML 文件、通过计算机声卡播放音频文件。或者执行外部MIME 类型是一种文本标记,表示一种基本的对象类型和一个特定的子类型,中间由一条斜杠来分隔。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdTAxMTc5NDIzOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

HTML 格式的文本文档由  text/html 类型来标记。

普通的 ASCII 文本文档由 text/plain 类型来标记。

JPEG 版本号的图片为  image/jpeg 类型。

GIF 格式的图片为  image/gif 类型。

Apple 的 QuickTime 电影为  video/quicktime 类型。

微软的 PowerPoint 演示文件为   application/vnd.ms-powerpoint 类型。

在j2e中操作Excel,须要设置ContentType为application/msexcel,事实上就是这里mime类型。

  • 方法

HTTP 支持几种不同的请求命令,这些命令被称为 HTTP 方法(HTTP method) 。

每条 HTTP 请求报文都包括一个方法。

这种方法会告诉server要执行什么动作(获取一个 Web 页面、执行一个网关程序、删除一个文件等) 。

一些常见的HTTP方法:

HTTP方法 描  述

GET 从server向client发送命名资源

PUT 将来自client的数据存储到一个命名的server资源中去

DELETE 从server中删除命名资源

POST 将client数据发送到一个server网关应用程序

HEAD 仅发送命名资源响应中的 HTTP 首部

  • 状态码

每条 HTTP 响应报文返回时都会携带一个状态码。

状态码是一个三位数字的代码,告知client请求是否成功,或者是否须要採取其它动作。表 1-3 显示了几种常见的状态码。



一些常见的HTTP状态码

HTTP状态码 描  述

200 OK。
文档正确返回

302 Redirect(重定向) 。
到其它地方去获取资源

404 Not Found(没找到) 。

无法找到这个资源

伴随着每一个数字状态码,HTTP 还会发送一条解释性的“原因短语”文本 。包括文本短语主要是为了进行描写叙述,全部的处理过程使用的都是数字码。

HTTP 软件处理下列状态码和原因短语的方式是一样的。

200 OK

200 Document attached

200 Success

200 All’s cool, dude



  • 报文

HTTP 报文是由一行一行的简单字符串组成的。HTTP 报文都是纯文本,不是二进制代码。所以人们能够非常方便地对其进行读写1 。下图显示了一个简单事务所使用的 HTTP 报文。





从 Web client发往 Web server的 HTTP 报文称为请求报文(request message) 。

从server发往client的报文称为响应报文(response message) ,此外没有其它类型的

HTTP 报文。

HTTP 请求和响应报文的格式非常类似。

HTTP 报文包含下面三个部分。



起始行 :

报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。

首部字段 :

起始行后面有零个或多个首部字段。

每一个首部字段都包括一个名字和一个值。为了便于解析,两者之间用冒号(:)来分隔。

首部以一个空行结束。

加入一个首部字段和加入新行一样简单。

主体 :

空行之后就是可选的报文主体了。当中包括了全部类型的数据。

请求主体中包括了要发送给 Web server的数据;响应主体中装载了要返回给client的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中能够包括随意的二进制数据(比方图片、视频、音轨、软件程序) 。

当然,主体中也能够包括文本。

 

  • 连接

TCP/IP。连接、IP地址及port号,这些属于网络编程中的概念而知识。这里就不再赘述。

版权声明:本文博主原创文章,博客,未经同意不得转载。

HTTP相关概念的更多相关文章

  1. IDDD 实现领域驱动设计-上下文映射图及其相关概念

    上一篇:<IDDD 实现领域驱动设计-理解限界上下文> 距离上一篇有几天时间了,<实现领域驱动设计>第三章的内容都是围绕一个词-上下文映射图,我大概断断续续看了几天,总共看了两 ...

  2. [原创]java WEB学习笔记105:Spring学习---AOP介绍,相关概念,使用AOP,利用 方法签名 编写 AspectJ 切入点表达式

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  3. C#并行编程-相关概念

    菜鸟初步学习,不对的地方请大神指教,参考<C#并行编程高级教程.pdf> 目录 C#并行编程-相关概念 C#并行编程-Parallel C#并行编程-Task C#并行编程-并发集合 C# ...

  4. Java笔记1-Java相关概念和如何实现跨平台

    一.Java相关概念 1.Java语言的核心特点跨平台面向对象 2.Java的历史版本JDK1.0,JDK1.1,JDK1.2....JDK5.0,JDK6.0,JDK7.0,JDK8.0 注意:JD ...

  5. Android开发学习总结——Android开发的一些相关概念

    一.什么是3G.4G 1995年问世的第一代模拟制式手机(1G)只能进行语音通话. 1996到1997年出现的第二代GSM.CDMA等数字制式手机(2G)便增加了接收数据的功能 Ÿ 3G指的是第三代移 ...

  6. JMS相关概念

    1.相关概念 1)JMS jms即Java消息服务(Java Message Service) 是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息 ...

  7. Scrum 的相关概念

    Scrum 的相关概念 4.1   Scrum 的起源 Scrum 是一种灵活的敏捷软件开发管理过程,这个名词来源于英式橄榄球.Scrum方法由Ken Schwaber和Jeff Sutherland ...

  8. linux设备驱动归纳总结(四):2.进程调度的相关概念【转】

    本文转载自:http://blog.chinaunix.net/uid-25014876-id-65555.html linux设备驱动归纳总结(四):2.进程调度的相关概念 xxxxxxxxxxxx ...

  9. linux设备驱动归纳总结(四):1.进程管理的相关概念【转】

    本文转载自;http://blog.chinaunix.net/uid-25014876-id-64866.html linux设备驱动归纳总结(四):1.进程管理的相关概念 xxxxxxxxxxxx ...

  10. 【转】大数据以及Hadoop相关概念介绍

    原博文出自于: http://www.cnblogs.com/xdp-gacl/p/4230220.html 感谢! 一.大数据的基本概念 1.1.什么是大数据 大数据指的就是要处理的数据是TB级别以 ...

随机推荐

  1. 使用gdb调试游戏服务器

    前言 谈论gdb重要性 一般来说.提gdb,命令用于调试."命令",用户是几乎相同的复杂话.而事实确实如此,实际的开发调试必须用到gdb. 如今.大多数Linux系统是存在于ser ...

  2. 空间参考系统与WKT解析

    空间参考系统与WKT解析 1.为什么要空间参考系统? 空间参考系统,也称为坐标系统.在GIS中为地理数据定位的基准,假设给你一个坐标(442281.875,4422651.589).如果不给你空间参考 ...

  3. linux-sfdisk 使用方法

    功能说明:硬盘分区工具程序. 语 法:sfdisk [-?Tvx][-d <硬盘>][-g <硬盘>][-l <硬盘>][-s <分区>][-V < ...

  4. mina的编码和解码以及断包的处理,发送自己定义协议,仿qq聊天,发送xml或json

    近期一段时间以来,mina非常火,和移动开发一样.异常的火爆.前面写了几篇移动开发的文章,都还不错.你们的鼓舞就是我最大的动力.好了,废话少说.我们来看下tcp通讯吧. tcp通讯对于java来说是非 ...

  5. hdu 3488 Tour

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3488 题意:给你一个N个顶点M条边的带权有向图,要你把该图分成1个或多个不相交的有向环.且所有定点都只 ...

  6. Hbase经常使用命令

    hbase shell命令的使用 再使用hbase 命令之前先检查一下hbase是否执行正常 hadoop@Master:/usr/hbase/bin$ jps 2640 HMaster 27170 ...

  7. 从零開始学习制作H5应用——V5.0:懊悔机制,整理文件夹,压缩,模板化

    经过前面四个版本号的迭代.我们已经制作了一个从视觉和听觉上都非常舒服的H5微场景应用,没有看过的请戳以下: V1.0--简单页面滑动切换 V2.0--多页切换.透明过渡及交互指示 V3.0--增加lo ...

  8. 【C语言疯狂讲义】(八)C语言一维数组

    1.数组的基本概念: 同样类型    若干个     有序 由若干个同样类型的数据组成的有序的集合 有序:存储地址连续 下标连续 数组名:用来存放数组首地址的变量 数组元素:构成数组的每个数据 数组的 ...

  9. 依据二度人脉推荐好友sql

    friend表结构 DROP TABLE IF EXISTS FRIEND; create table friend(     uid        bigint not null comment ' ...

  10. Selenium之利用Excel实现参数化

    Selenium之利用Excel实现参数化 说明:我是通过Workbook方式来读取excel文件的,这次以登陆界面为例 备注:使用Workbook读取excel文件,前提是excel需要2003版本 ...