什么是http
当你使用Web浏览器打开一个网站的时候,你需要从网站的远端服务器拉取内容来展示,
例如图片,html,css,js等。那么从web浏览器与服务器之间通信是需要统一
沟通方式(对于两个来自不同国家的人来说,想要交流首先要统一表达方式,是口语交流还是文字交流)。
web浏览器就使用http来实现与服务器之间的通信。
在现代全球因特网中使用的公共语言就是http。tcp/ip与http的区别是什么?
http是一种沟通方式,而tcp/ip则是沟通方式实现的细节。就像两个来自不同
国家的人选择用口述的方式沟通(http),现在沟通方式确定了,那么接下来要确定
使用哪种语言(tcp/ip)。官方点的描述是http协议属于应用层,tcp/ip分别属于传输层,网络层。
web内容都是存储在web服务器上的。web服务器所使用的是http协议,
因此经常会被称为http服务器。这些http服务器存储了因特网中的数据,
如果http客户端发乎请求的话,它们会提供数据。客户端向服务器发送
http请求,服务器会在http响应中回送所请求的数据。
http客户端和http服务器共同构成了万维网的基本组件
什么是web资源
web服务器是web资源的宿主。web资源是web内容的源头。
最简单的web资源是web服务器文件系统转哦给你的静态文件。
这些文件可以包括任意内容:文本文件,html文件,微软的word文件,
adobe的acrobat文件,或所有其他你能够想到的格式。
但资源不一定非得是静态文件。资源还可以是根据需要生成内容
的软件程序。这些动态内容资源可以根据你的身份,所请求的信息或
每天的不同时段来产生内容。它们可以为你显示照相机中活生生的招聘,
也可以帮你进行股票交易等
什么是媒体类型
英特网上有数千种不同的数据类型,http仔细的给每种要通过web传
输的对象都进行标识,打上名为 MIME 类型的数据格式标签,最初设
计MIME是为了解决在不同的电子邮件系统之间挪移报文存在的问题。
MIME在电子邮件系统中工作的非常好,因此http也采纳了这种处理方
式,用它来描述并标记多媒体内容。
web服务器会为所有http对象数据附加一个MIME类型。
当web浏览器从服务器中取回一个对象时,回去查看相关的MIME类型,
看看它是否知道应该如何处理这个对象。大多数浏览器都可以处理数
百种常见的对象类型:html,js,css,png等。MIME是一种文本标记,
表示一中主要的对象类型和一个特定的子类型,中间由一条斜杠来区分。
- html格式的文档由 text/html 类型来标记
- 普通的ascll文本文档由 text/plain 类型来标记
- jpeg格式的照片为 image/jpeg 类型
- gif格式类型的图片为 image/gif 类型
什么是URI,什么是URL
每个web服务器资源都有一个名字,这样客户端就可以说明它们
感兴趣的资源是什么了。服务器资源名被成为统一资源标识符(Uniform Resource Identifier URL).
URI就像因特网上的邮政地址一样,在世界范围内唯一标识并定位信息资源。
URL,统一资源定位符。是资源标识符最常见的形式。URL描
述了一台特定服务器上某资源的特定位置。它们可以明确说明如果从一个精确,固定的位置获取资源
大部分的URL都遵循一个中标准格式,这种格式包含三个部分。
- URL的第一部分被称为方案,说明了访问资源所使用的协议类型。这部分通常就是http协议(http://)
- 第二部分给出了服务器的英特网地址(www.itget.cn)
- 其余部分指定web服务器上的某个资源(/user/name);
现在,几乎所有的URI都是URL.
什么是事务
我们来更自习的看看客户端是怎样通过http与web服务器及其资源进
行事务处理的。一个http事务由一条(从客户端发往服务器的)请求命令
和一个(从服务器发回客户端的)响应结果组成。这中通信是通过名为http报文的格式化数据块进行的。
#方法
http支持几种不同的请求命令,这些命令被称为http方法。
每条http请求报文都包含一个方法。这个方法会告诉服务器要执行什么动作(获取一个web页面,运行一个网关程序,删除一个文件等)。
GET : 从服务器向客户端发送命名资源
PUT : 将来自客户端的数据存储到一个命名的服务器资源中去
DELETE : 从服务器中删除命名资源
POST : 将客户端数据发送到一个服务器网关应用程序
HEAD : 仅发送命名资源响应中的http首部
#报文
现在我们来快速浏览一下 http请求和响应报文的结构。
http报文是由一行一行的简单字符串组成的。http报文都是纯文本,不是二进制代码,所以人们可以很方便的对其进行读写。
请求报文:
|GET /test/bugall.txt http/1.1| 起始行
|-----------------------------|
|Accept : text/* |
|Accept-Language: en,fr | 首部
|_____________________________|
相应报文
|http/1.1 200 ok | 起始行
|-----------------------------|
|Content-type:text/plain |
|Content-length:19 | 首部
|-----------------------------|
|Hi! I‘m bugall! | 主体
|-----------------------------|
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/bugall/article/details/47984889