http概述(http权威指南第一章)

来源:互联网 发布:数据产品经理做什么 编辑:程序博客网 时间:2024/05/07 10:52

HTTP概述

在这一章我们可以看到如下内容 :
- web客户端鱼服务器是如何通信的
- 资源来自何方
- web事物是怎样工作的
- HTTP通信所使用的报文格式
- 底层TCP网络传输
- 不同的HTTP协议变体
- 因特网上安装的大量HTTP架构组件中的一部分
1. HTTP-因特网的多媒体信使
HTTP使用的是可靠的数据传输协议,即使数据来自地球的另一端,它也能够确保数据在传输的过程中不会被损坏或产生混乱,无需担心HTTP通信会在传输过程中中国年被破坏,复制后产生畸变
2. web客户端和服务器
客户端向服务器发送HTTP请求,服务器会在HTTP响应中会送所请求的数据,http客户端和http服务器共同构成万维网的基本组件
浏览一个页面时(http://www.oreilly.com/index.html),浏览器会向服务器(www.oreilly.com)发送一条http请求,服务器会去寻找所期望的对象(/index.html),如果成功,就将对象,对象类型,对象长队以及其他一些信息放在http相应中发送给客户端
3. 资源
web服务器就是web资源的宿主,web资源是web内容的源头。最简单的web资源就是web服务器文件系统中的静态文件,这些文件包含人以内容:文本文件,html文件,微软的word文件,adobe的acrobat文件,jpeg图片文件,avi电影文件等。
但是资源不一定非得是静态文件,资源还可以是根据需要生成内容的软件程序
- 媒体类型
http给每种要通过web传输的对象都打上名为MIME类型的数据格式标签。当web浏览器从服务器中取回一个对象是,会去查看相关的MIME类型,看看它是否知道应该如何处理这个对象。
MIME类型是一种文本标记,表示为(主要的对象类型/特定的子类型),比如:
- HTML格式的文本文档:text/html
- 普通的ASCII文本文档:text/plain
- jpeg格式的图片:image/jpeg
- gif格式的图片:image/gif
- Apple的QuickTime电影:video/quicktime
- 微软的PowerPoint演示文件:application/vnd.ms-powerpoint
常见的MIME类型有数百个
- URI 统一资源标识符
每个web服务器资源都有一个名字,被称为URI(Uniform Resource Identifier).它就像邮政地址一样,在世界范围内唯一标示并定位信息资源。给定了URI,http就可以解析出对象,URI有两种形式:URL和URN
- URL 统一资源定位符
URL表述了一台特定服务器上某资源的特定位置
大部分URL都遵循一种标准格式,包括三个部分:
- 方案(scheme),说明了访问资源所使用的协议类型(http://)
- 服务器的因特网地址(www.baidu.com)
- 其余部分指定web服务器上的某个资源
现在几乎所有的URI都是URL
- URN 统一资源名
座位特定内容的唯一名称使用,与目前的资源所在地无关,可以将资源四处搬移,URN仍然处于试验阶段,并未大范围使用
4. 事务
一个http事务包括一个请求命令和一个相应结果,这种通信通过名为http报文的格式化数据块进行的
- 方法
http支持集中不同的请求命令,被称为http方法。每条请求报文都包含一个方法,这个方法告诉服务器执行什么动作(获取一个web页面,运行一个网关程序,删除一个文件),以下是5中常见的方法:
1. GET:从服务器向客户端发送命名资源
2. PUT:将来自客户端的数据存储到一个命名的服务器资源中
3. DELETE:从服务器删除命名资源
4. POST:将客户端数据发送到一个服务器网关应用程序
5. HEAD:仅发送命名资源相应中的http首部
- 状态码
每条http响应报文返回时都会携带一个状态码,由三位数字组成,告诉客户端请求是否成功,或者是否需要采取其他动作,下面是常见的状态码:
1. 200:OK,文档正确返回
2. 302:Redirect(重定向),到其他地方去获取资源
3. 404:Not Found(没找到),无法找到这个资源
- web页面中可包含多个对象
一个web页面的获取可能需要多个http事务,比如一个事务获取描述页面布局的html”框架”,其他的事务分别获取嵌入式图片,图像面板,java小程序等。一个web页面通常不是单个资源,而是一组资源的集合,可能分布在不同的服务器上
5. 报文
http报文都是纯文本,不是二进制代码,包括请求报文和相应报文,http报文包括以下三部分:
- 起始行
报文第一行就是起始行,在请求报文中用来说明要做些什么,在相应报文中说明出现了什么情况
- 首部字段
起始行后面有零个或多个首部字段,每个首部字段包含(名字:值),以一个空行结束
- 主体
空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送个web服务器的数据,相应主体中国年装载了要返回给客户端的数据。主体中可以包含任意二进制数据(比如图片,视频,音轨,软件程序)
6. 连接
报文是如何通过传输控制协议(TCP)连接从一个地方搬移到另一个地方
- TCP/IP
http是应用层协议,无需操心网络通信的具体细节,把联网的细节都交给了通用,可靠的因特网传输协议TCP/IP
TCP提供了:
- 无差错的数据传输
- 按序传输
- 未分段的数据流(以任意尺寸将数据发送出去)

  • 连接,IP地址及端口号
    在http客户端向服务器发送报文之前,需要用ip地址和端口号在客户端和服务器之间建立一条TCP连接。步骤如下:
    a. 浏览器从URL中国年解析出服务器主机名
    b. 浏览器将服务器主机名转换为服务器IP地址(DNS服务器)
    c. 浏览器将服务器端口号(如果有的话)从URL中解析出来
    d. 浏览器建立一条与web服务器的tcp连接
    e. 浏览器向服务器发送一条http请求报文
    f. 服务器向浏览器回送一条http响应报文
    g. 关闭连接,浏览器显示文档
    1. 协议版本
  • http/0.9
  • http/1.0
  • http/1.0+
  • http/1.1
  • http/2.0
    1. web的结构组件
  • 代理
    http代理服务器是web安全,应用集成以及性能优化的重要组成模块。
    代理位于客户端与服务器之间,接收所有客户端的http请求,并将这些请求转发给服务器(可能会对请求进行修改后转发)
  • 缓存
    web缓存或代理缓存是一种特殊的http代理服务器,可以将经过代理传送的常用文档复制保存起来,客户端从附近的缓存下载文档比远程服务器下载快得多
  • 网关
    网关是一种特殊的服务器,作为其他服务器的中间实体使用,通常用于将http流量转换成其他的协议
  • 隧道
    隧道是建立以后,就会在两条连接之间对原始数据进行盲转发的http应用程序。http隧道通常用来在一条或多条http连接上转发菲http数据
  • Agent代理
    用户Agent代理是代表用户发起http请求的客户端程序。所有发布web请求的应用程序都是httpAgent代理,不仅仅包括web浏览器,还有其他类型
    发起自动http请求的半智能web客户端
原创粉丝点击