HTTP 概述

HTTP 概述

本文为HTTP Web基础部分,概要总结下HTTP;Web浏览器、服务器和相关的Web应用程序都是通过HTTP相互通信的;学习Web应用程序是如何使用HTTP进行通信的。

包含如下内容:

  • Web客户端与服务器是如何通信的;
  • (表示Web内容的)资源来自何方;
  • Web事务是怎样工作的;
  • HTTP通信使用的报文格式;
  • 底层的TCP网络传输;
  • 不同的HTTP协议变体;
  • 因特网上安装的大量HTTP架构组织的一部分。

1、 HTTP 使用的是可靠的传输协议

2、 Web客户端&服务器

客户端[HTTP请求]:“请将名为/index.html的文档发给我”

服务器[HTTP相应]:“好的,这就是。文档是以HTML格式给出的,有4520字节长。”

如上所示:当我们使用浏览器向服务器发送一条HTTP请求,服务器会寻找到所期望的对象,如果成功,就将对象、对象的类型、对象的长度以及其他一些信息放在HTTP响应中发送给客户端 。

3、资源

所有能够提供Web内容的东西都是Web资源;(任何格式的文件、根据需要生成内容的软件程序、Web网关、因特网搜索引擎)

3.1 媒体类型

因特网上有数千种不同的数据类型,HTTP会给每种要通过Web传输的对象打上名为MIME 类型(MIME type)的数据格式标签。最初设计MIME(Multipurpose Internet Mail Extension,多用途因特网邮件扩展)是为了解决不同的电子邮件系统库之间搬移报文时存在的问题。HTTP也采纳了这种设计并用来描述并标记多媒体内容 。

Content-type: image/jpeg   ←-----------这里的“image/jpeg”就是MIME类型
Content-length: 12306

Web服务器会为所有的HTTP对象数据附加一个MIME类型。当浏览器收到一个对象的时候,会查看相关的MIME类型,从而知道怎么处理这个对象(如:显示图片文件、解析并格式化HTML文件、通过计算机的声卡播放音频文件,或者运行外部插件软件来处理特殊格式的数据)。

MIME类型格式与表示:[主要的对象类型]/(特定的子类型)

下面是一些常见的例子:

  • HTML格式的文本文档: text/html
  • 普通的ASCII文本文档:text/plain
  • JPEG格式的图片:image/jpeg
  • GIF格式的图片:image/gif
  • Apple的QuickTime电影:video/quicktime
  • 微软的PPT:application/vnd.ms-powerpoint

更多参考:MIME 参考手册

3.2 URI

统一资源标识符(Uniform Resource Identifier,URI),URI有两种形式:

  • URL统一资源定位符

    URL说明了协议、服务器、以及资源,大部分的URL都遵循一种规则格式,这种格式包含三个部分:

    http:// www.baidu.com /image/loggo.gif
    访问资源所使用的协议类型(scheme) 服务器的因特网地址 指定Web服务器上的某个资源
  • URN统一资源名

4、事务

一个HTTP事务是由一条请求命令和一条相应结果组成。这种通信是通过HTTP报文(HTTP message)的格式化数据块进行的。

4.1 方法

HTTP支持几种不同的请求命令,这些命令称之为HTTP方法(HTTP method)。每条HTTP报文都包含一个方法 ,这个方法告诉服务器要执行什么样的动作(如获取一个Web页面、运行一个网关程序、删除一个文件等等),下表为常见HTTP方法:

HTTP方法 描述
GET 从服务器向客户端发送命名资源
PUT 将来自客户端的数据存储到一个命名的服务器资源中去
DELETE 从服务器中删除命名资源
POST 将客户端数据发送到一个服务器网关应用程序
HEAD 仅发送命名资源响应中的HTTP首部
4.2 状态码

每条HTTP响应报文都会包含一个三位数字的状态码,告知客户端响应是否成功或需要采取什么动作,常见状态码如下:

HTTP状态码 描述
200 OK。文档正确返回
302 Redirect(重定向)。到其他地方去获取资源
404 Not Found(没有找到)。

伴随着数字状态码,HTTP还会法功一条解释性的“原因短语 ”:

  • 200 OK
  • 200 Document attached
  • 200 Success
  • 200 All,s cool, dude

5、报文

HTTP报文仅包含两种,从Web客户端发往服务器的称之为请求报文(request message)反之称之为响应报文(response message),HTTP报文主要包含三个部分:

  • 起始行

    报文的第一行;在请求报文中用来说明要做什么,在响应报文中说明出现了设么样的状况。

  • 首部字段

    起始行后面的零个或多个首部字段。每个首部字段都包含一对用分割 的键值对 。首部以一个空行结束。

  • 主体

    空行之后就是可选的报文主体了,其中包含了所有类型的数据 。

简单的报文实例:

请求报文

GET /index.html HTTP/1.0
User-agent: Mozilla/4.75 [en] (win7;U)
Host: www.baidu.com
Accept: text/html,image/gif,image/jpeg

响应报文

HTTP/1.0 200 OK
Date: Sun,01 Oct 2018 23:25:11 GMT
Server: Apache/3.0.1 BSafe-SSL/1.38 (Unix)
Last-modifed: Tue,40 Jul 2018 09:15:33 GMT
Content-length: 506
Content-type: text/html

<HTML>
<HEAD><TITLE>index page</TITLE></HEAD>
<BODY>
<H1>hello word</H1>
</BODY>
</HTML>

6、连接

6.1 TCP/IP

HTTP 应用层

TCP 传输层

IP 网络层

因特网特有的链路接口 数据链路层

物理网络硬件 物理层

6.2 连接、IP地址以及端口号

http://192.168.2.100:8080/index.html IP地址:192.168.2.100 端口号:8080

http://www.baidu.com/index.html:这里主机名为(www.baidu.com)可以通过域名服务(Domain Name Service,DNS)的机制方便的将主机名转换为IP地址,端口号的话默认为80。

7、协议版本

1.0 、1.1 、2.0、 3.0

8、Web的机构组件

  • 代理
  • 缓存
  • 网关
  • 隧道
  • Agent代理
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,185评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,652评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,524评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,339评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,387评论 6 391
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,287评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,130评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,985评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,420评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,617评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,779评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,477评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,088评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,716评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,857评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,876评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,700评论 2 354

推荐阅读更多精彩内容

  • (本文参考课本是《HTTP权威指南》,文中的书写结构是根据自己的阅读理解的个人思路,如有不懂可以自行参考原书) 第...
    Andrew_bao阅读 544评论 1 3
  • Http概述 HTTP使用的是可靠的传输协议,即使数据是来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏...
    星流星阅读 373评论 0 0
  • 1.1HTTP——因特网的多媒体信使 HTTP可以从世界各地的Web服务器上将各种图片、html、视频等互联网资源...
    八目朱勇铭阅读 554评论 0 3
  • 前言 HTTP = Hypertext Transfer Protocol = 超文本传输协议是在万维网上进行通信...
    littledust阅读 375评论 0 2
  • IntentService是一个基于Service的一个类,用来处理异步请求的,当完成所有任务以后自己就会自动关闭...
    心一如既往的空荡阅读 484评论 0 0