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代理

原文地址:https://www.cnblogs.com/nm666/p/10301547.html

时间: 2024-11-09 00:00:58

HTTP 概述的相关文章

第一课 MongoDB 概述与安装

1.课程大纲 本次课主要介绍 MongoDB 背景知识和 MongoDB 的安装与配置,让大家对 MongoDB 有一个初认识. 其基本的知识点包含: NoSQL数据库概述 MongoDB 数据库简单介绍 Linux 下安装 MongoDB 数据库 Mac 和 Windows 下安装 MongoDB 数据库 2.课程简单介绍 MongoDB是由MongoDB.inc研发的一款NoSQL类型的文档型数据库,MonogoDB名字来源于英文单词humongous,这个单词的意思是巨大无比.暗喻Mong

java面向对象:面向对象的思想和概述

1:面向对象思想 面向对象是基于面向过程的编程思想. 面向过程:强调的是每一个功能的步骤 面向对象:强调的是对象,然后由对象去调用功能 2:面向对象的思想特点 A:是一种更符合我们思想习惯的思想 B:可以将复杂的事情简单化 C:将我们从执行者变成了指挥者 开发,设计,特征 面向对象开发 就是不断的创建对象,使用对象,指挥对象做事情. 面向对象设计 其实就是在管理和维护对象之间的关系. 面向对象特征 封装(encapsulation) 继承(inheritance) 多态(polymorphism

java基础总结——概述

  一.java语言概述 来自维基百科 https://zh.wikipedia.org/wiki/Java Java是一种计算机编程语言,拥有跨平台.面向对象.泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发. 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言,应用在电视机.电话.闹钟.烤面包机等家用电器的控制和通信.由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划.随着1990

译-BMC Remedy Action Request System权限控制概述

原文链接:Access control overview 说明: BMC Remedy Action Request System是BMC ITSM产品平台,简称AR 或者Remedy,可实现基于ITIL标准的整个IT管理流程的实施定制.该平台可实现多种权限级别的管理,包括人员.组.角色,以及表.字段.行级别等.本文可以用作其他对权限要求比较精细的系统参考. 为了便于理解,部分名词翻译如下: Server:服务器Form (or table):表单Field (or column):字段Acti

Aircrack-ng: (1) 概述

作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 目录 一.概述 二.工具与命令介绍 Linux命令 (1) ifconfig (2) macchanger (3) iwconfig (4) iwlist Aircrack-ng 工具 (1) airmon-ng (2) airodump-ng (3) aireplay-ng (4) aircrack-ng 其他Aircrack-ng工具 一.概述 Aircrack-ng是一款用于破解无线

NHibernate框架与BLL+DAL+Model+Controller+UI 多层架构十分相似--『Spring.NET+NHibernate+泛型』概述、知识准备及介绍(一)

原文://http://blog.csdn.net/wb09100310/article/details/47271555 1. 概述 搭建了Spring.NET+NHibernate的一个数据查询系统.之前没用过这两个框架,也算是先学现买,在做完设计之 后花了一周搭建成功了.其中,还加上了我的一些改进思想,把DAO和BLL之中相似且常用的增删改查通过泛型T抽象到了DAO和BLL的父类中,其DAO 和BLL子类只需继承父类就拥有了这些方法.和之前的一个数据库表(视图)对应一个实体,一个实体对应一

排序算法--概述和参考

1 概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大,则应采用时间复杂度为O(nlog2n)的排序方法:快速排序.堆排序或归并排序序. 快速排序:是目前基于比较的内部排序中被认为是最好的方法,当待排序的关键字是随机分布时,快速排序的平均时间最短: 2 参考 http://blog.csdn.net/hguisu/article/details/77

Css3之高级-7 Css动画(概述、关键帧、动画属性)

一.动画概述 动画概念 - 过渡属性只能模拟动画效果 - animation 属性可以制作类似 Flash 动画 - 通过关键帧控制动画的每一步 - 使元素从一种样式逐渐变化为另一种样式 - 实现复杂的动画效果 - 浏览器兼容性 - 最新版本支持良好 - Chrome 和 Safari 需要前缀 -webkit- - FireFox 需要前缀 -moz- - Opera 需要前缀 -o- 动画示例 - 声明动画 - 创建一个已命名的动画 - 使用 @keyframes 声明动画的关键帧 - 为元

android动画详解一 概述

动画和图形概述 Android 提供了大量的强大的API以应用于UI动画和绘制2D和3D图形.下面各节向你描述了这些API的预览和系统能力以帮助你决定怎么才是达到你需求的最佳方法. 动画 Android 框架提供了两个动画系统: 两种动画系统都是切实可用的,但是一般情况下属性动画系统是被首推使用的.因为它更灵活并且提供了更多的特性.在此两系统之外,你还可以使用Drawable动画,它使得你可以加载drawable资源并且一帧帧的显示它们. Property动画 从Android 3.0 (API

蓝牙核心技术概述(一):蓝牙概述

蓝牙核心技术概述(一):蓝牙概述 标签: 蓝牙bluetoothsig 2014-07-26 16:01 6143人阅读 评论(3) 收藏 举报  分类: 协议(14)  版权声明:本文为博主原创文章,未经博主允许不得转载. 关键词:蓝牙 核心技术 协议 版本 历史作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢)欢迎指正错误,共同学习.共同进步!!下载连接:Bluetooth PROFILE SPECIFICATIONS (基本涵盖所有蓝牙协议).buletooth cor