HTTP协议基础

概述

HTTP协议全称为超文本传输协议(HyperText Transfer Protocol),它使得网络上的Web浏览器、服务器和相关的Web应用程序之间的通信成为可能。HTTP是现代全球因特网中使用的公共语言。

Web客户端和服务器.png

上图是表示了Web客户端和服务器通信的大致过程。客户端对HTTP发送一个获取资源的请求,服务器端返回该资源给客户端,并且附加一些额外信息,这有利于客户端采取合理的方式解析资源。在这一过程中,有几个问题需要考虑:

  • 寻址:客户端是如何知道资源在哪个服务器的哪个存储区间的?
  • 协议:客户端和服务器端是如何相互识别对方的信息的?
  • 数据:数据是放在什么地方以什么方式传送的?
  • 连接:客户端和服务器端之间是如何进行数据传输的?

以下内容分别对这几个问题进行探讨。

资源

这一部分回答第一个问题。

HTTP被称为因特网的多媒体信使。它可以传输图片、HTML页面、文本文件、MPEG电影、WAV音频文件等各种各样的资源。这些资源存储在服务器中,它们被某个唯一的记号标记,从而被全世界各地的客户端访问而不会发生错乱。这种唯一的标记方式就是URI。

URI

URI的全称为统一资源标识符(Uniform Resource Identifier),也就是说用来为网络资源标识某个唯一性的东西。标识的方式可以采取多种多样,URI主要采取两种,URL和URN,前者通过地址标识,后者通过名字标识。

URL

在现在的网络环境中,基本上可以说URL就是URI。URL全称为统一资源定位符。它可以明确说明如何从一个精确、固定的位置获取资源。

URL语法

大多数URL方案的URL语法都建立在如下9部分构成的通用格式上:

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

其中最终的3个部分为scheme(方案)host(主机)path(路径)。下表对各个组件进行了总结。

组件 描述 默认值
方案 访问服务器以获取资源时要使用哪种协议
用户 某些方案访问资源时需要的用户名 匿名
密码 用户名后面要包含的密码,中间又冒号(:)分隔
主机 资源宿主服务器的主机名或点分IP地址
端口 资源宿主服务器正在监听的端口号。很多方案都有默认端口号(HTTP的默认端口号为80) 每个方案特有
路径 服务器上资源的本地名,有一个斜杠(/)将其与前面的URL组件分隔开来。路径组件的语法是与服务器和方案有关的。
参数 某些方案会用这个组件来指定输入参数。参数为名/值对。URL中可以包含多个参数字段,它们相互之间以及与路径的奇遇部分之间用(;)分隔。
查询 某些方案会用这个组件传递参数以激活应用程序(比如数据库、公告板、搜索引擎以及其他因特网网关)。查询组件的内容没有通用格式。用字符“?”将其与URL的其余部分分隔开来。
片段 一小片或一部分资源的名字。引用对象时,不会将frag字段传送给服务器;这个字段是在客户端内部使用的。通过“#”将其与URL的其余部分分隔开来。

其中要特别说明的是参数和片段部分。

参数

参数为应用程序提供了访问资源所需的所有附加信息。HTTP URL的路径组件可以分成若干路径段。每段都可以有自己的参数。比如:

http://www.joes-hardware.com//hammers;sale=false/index.html;graphics&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值