Http概述(一)
Http使用的是可靠的数据传输协议,因此即使数据来自地球的另一端,也能够确保数据在传输过程中不会被损坏或产生混乱。
这样用户在访问信息时就不用担心其完整性了。
web服务端与服务器是如何通信的
Web内容都是存储在web服务器上的,web服务器所使用的是http协议,因些经常会被称为Http服务器,http客户端发出请
求会话,它们会提供数据,客户端向服务器发送HTTP请求,服务器会在HTTP响应中回送请求的数据。如图
web资源
web服务器是web资源(web resource)的宿主,web资源的web内容的源头。最简单的web资源是web服务器
文件系统中的静态文件。这些文件可以包含任意内容:文本内容,HTML文件,图片等。
因特网上有数千种不同的数据类型,HTTP仔细地给每种要通过WEB传输的对象都打上了名为MIME类型(mime type)
的数据格式标签。当web浏览器从服务器中取回一个对象时,会去查看相关的MIME类型,看看它是否知道
应该如何处理这个对象。大多数浏览器可以处理数百种觉的对象类型:显示图片文件、解析并格式化HTML文件、
通过计算机声卡插入音频文件,或者运行外部插件软件来处理特殊格式的数据。
MIME类型是一种文本标记,表示一种主要的对象类型和一个我写的子类型,中间由一条斜杠来分隔。如
- HTML格式的文本文档由text/html类型来标记
- 普通的ASCII文本由text/plain类型来标记
- JPEG版本的图片为image/gpeg类型
- GIF格式的图片为image/gif类型
常见的MIME类型有数百个,更多类型请查看 w3school
http://www.w3school.com.cn/media/media_mimeref.asp
每个web服务器资源都有一个名字,这样客户端就可以说明它们要找的资源是什么了,服务器资源名称被称为
统一资源标识符(Uniform Resource Identifier,URI)。
URI就像因特网上的身份证一样,在世界范围内唯一标识并定位信息资源
这个是是我博客上的一个图片资源URI
http://images.cnblogs.com/cnblogs_com/li-peng/578271/o_china.jpg
给出了URI,HTTP就可以解析出对象,URI有两种形式,分别称为URL和URN,
URL统一资源定位符是资源标识符最常见的形式。URL描述了一台特定服务器上某资源的特定位置。它们可以明确说明如何从一个
精确、固定的位置获取资源。
大部分URL都遵循一种标准格式,这种格式包含三个部分
- URL的第一部分被称为方案(scheme)说明了访问资源所使用的协议类型。这部分通常就是HTTP协议(http://).
- 第二部分给出了服务器的因特网地址(如:www.images.cnblogs.com)
- 其余部分指定了Web服务器上的某个资源(如:cnblogs_com/li-peng/578271/o_china.jpg)
URN统一资源名。URN是作为特定内容的唯一名称使用的。它与当前的资源所在地无关。使用这些与位置无关的URN,就可以将资源四处搬移。通过URN,还可以用同一个名称能过多种网络协议来访问资源。
Urn还处于试验阶段,这里不详细介绍了
事务
一个http事务由一条请求命令和一个(从服务器发回客户端的)响应结果组成。这种通信是通过名为HTTP报文(http message)的格式化数据进行的
方法
HTTP支持几种不同的请求命令,这些命令被称为HTTP方法。每条HTTP请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个web页面、运行一个网关程序、删除一个文件等)。下面列出了五种常见的HTTP方法
GET | 从服务器向客户端发送发送命名资源 |
PUT | 将来自客户端的数据存储到一个命名的服务器资源中去 |
DELETE | 从服务器中删除命名资源 |
POST | 将客户端数据发送到一个服务器网关应用程序 |
HEAD | 仅发送命名资源响应中的HTTP首部 |
这些方法在以后会详细讨论。
状态码
每条HTTP响应报文返加时都会携带一个状态码,状态码是一个三们数字的代码告知客户端请求是否成功,或者是否需要采取其他动作
下表列出了几种常用的状态码
200 | OK,文档正确返回 |
302 | Redirect(重定向),到其他地方去获取资源 |
404 | Not Found(没找到)。无法找到这个资源 |
详细http://www.w3school.com.cn/tags/html_ref_httpmessages.asp
Web页面中可以包含多个对象
应用程序完成一项任务时通常会发布多个HTTP事件。比如,Web浏览器会发布一系列HTTP事务来获取并显示一个包含了丰富图片的WEB页面。
浏览器会执行一个事务来获取描述页面布局的HTML“框架”,然后发布另外的HTTP事务来获取每个嵌入式图片、图像面板、java小程序,这些嵌入式资源甚至可能位于不同的服务器上。
复全Web页面要为每个嵌入式资源使用一个单独的事务
报文
先简单说一个HTTP请求和响应报文结构,以扣会深入研究HTTP报文
HTTP报文是由一行一行的简单字符串组成。HTTP报文都是纯文本,不是二进制代码,所以人们可以
很方便地对其进行读写。
从WEB客户端发往WEB服务器的HTTP报文称为请求报文(request message)从服务器发客户端的报文称为响应报文
(response message) ,此外没有其他类型的HTTP报文。HTTP请求和响应报文的格式很类似
HTTP报文包含以下三个部分
- 起始行
报文的第一行就是起始行,在请求报文中用来说明要做什么,在响应报文中说明出现了什么情况
- 首部字段
起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单
- 主体
空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给Web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的而主休则不同,主休中可以 包含任意的二进制数据(比如图片、视频、软件程序)。当然,主体中也可以包含文本
请求的一个实例
我们就打开ORACLE的主页http://www.oracle.com/cn/index.html
Http概述(一)的更多相关文章
- 【AR实验室】ARToolKit之概述篇
0x00 - 前言 我从去年就开始对AR(Augmented Reality)技术比较关注,但是去年AR行业一直处于偶尔发声的状态,丝毫没有其"异姓同名"的兄弟VR(Virtual ...
- Recurrent Neural Network系列1--RNN(循环神经网络)概述
作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...
- Swift3.0服务端开发(一) 完整示例概述及Perfect环境搭建与配置(服务端+iOS端)
本篇博客算是一个开头,接下来会持续更新使用Swift3.0开发服务端相关的博客.当然,我们使用目前使用Swift开发服务端较为成熟的框架Perfect来实现.Perfect框架是加拿大一个创业团队开发 ...
- .Net 大型分布式基础服务架构横向演变概述
一. 业务背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便于运维及监控. 二. 基础 ...
- [C#] 进阶 - LINQ 标准查询操作概述
LINQ 标准查询操作概述 序 “标准查询运算符”是组成语言集成查询 (LINQ) 模式的方法.大多数这些方法都在序列上运行,其中的序列是一个对象,其类型实现了IEnumerable<T> ...
- 【基于WinForm+Access局域网共享数据库的项目总结】之篇一:WinForm开发总体概述与技术实现
篇一:WinForm开发总体概述与技术实现 篇二:WinForm开发扇形图统计和Excel数据导出 篇三:Access远程连接数据库和窗体打包部署 [小记]:最近基于WinForm+Access数据库 ...
- Java消息队列--JMS概述
1.什么是JMS JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送 ...
- [AlwaysOn Availability Groups]健康模型 Part 1——概述
健康模型概述 在成功部署AG之后,跟踪和维护健康状况是很重要的. 1.AG健康模型概述 AG的健康模型是基于策略管理(Policy Based Management PBM)的.如果不熟悉这个特性,可 ...
- μCos-ii学习笔记1_概述
一.μCos-ii _概述 网上关于μCosii的文章多不胜数,本人学习的过程中也参考了很多人的理解和想法,看的是卢有亮老师的<嵌入式实时操作系统-μC/OS原理与实践>(第2版),同时也 ...
- Android快乐贪吃蛇游戏实战项目开发教程-01项目概述与目录
一.项目简介 贪吃蛇是一个很经典的游戏,也很适合用来学习.本教程将和大家一起做一个Android版的贪吃蛇游戏. 我已经将做好的案例上传到了应用宝,无病毒.无广告,大家可以放心下载下来把玩一下.应用宝 ...
随机推荐
- a标签加入单击事件 屏蔽href跳转页面
我们常用的在a标签中有点击事件:1. a href="javascript:js_method();" 这是我们平台上常用的方法,但是这种方法在传递this等参数的时候很容易出问题 ...
- Java Maps的9个常见问题
一般来说,Map是一种由键值对组成的数据结构,其中键(key)在Map中是不能重复的: 本篇文章总结了9个最常见的问题(关于Java Map及其实现类): 出于简单考虑,在代码例子中我将不使用泛型,因 ...
- Mongodb源代码阅读笔记:Journal机制
Mongodb源代码阅读笔记:Journal机制 Mongodb源代码阅读笔记:Journal机制 涉及的文件 一些说明 PREPLOGBUFFER WRITETOJOURNAL WRITETODAT ...
- Win7家庭组的使用
Win7中有两种方式与他人共享文件,一种是“家庭组”,另一种是使用“工作组或域”. 家庭组是Win7中新增的一种共享文件方式,在传统的共享文件方式中必须手动设置所要共享的文件夹,而家庭组则不需要,只需 ...
- 记一次使用openrowset 的坑
前几天被老大训斥连openrowset 都不会用,然后我就去看了文档,想测试一下栗子~ openrowset 的具体语法我就不贴了,戳这里:https://msdn.microsoft.com/zh- ...
- POI读写Word docx文件
使用POI读写word docx文件 目录 1 读docx文件 1.1 通过XWPFWordExtractor读 1.2 通过XWPFDocument读 2 写docx ...
- VC6.0 C++ 如何调用微软windows系统SDK 语音API
下载3个语音API安装包 http://www.microsoft.com/en-us/download/details.aspx?id=10121 需要安装微软语音API安装包:SpeechSDK5 ...
- 基于vitamio的网络电视直播源码
这个项目是基于vitamio的网络电视直播源码,也是一个使用了vitamio的基于安卓的网络直播项目源码,可能现在网上已经有很多类似这样的视频播放应用了,不过这个还是相对来说比较完整的,希望这个案例能 ...
- python笔记-python编程优化:常用原则和技术介绍
本人翻译自<Exper Python Programming> 'Premature optimization is the root of all evil in programming ...
- inverse理解
首先术语inverse 被翻译为反转的意思.inverse 制定了关联关系中的方向. 当set的inverse属性默认情况下,hibernate会按照持久化对象的属性变化来同步更新数据库. 得到两条s ...