对HTTP的简单理解

web浏览器、服务器和相关的web应用程序都是通过HTTP相互通信的,HTTP是现代的全球因特网中使用的通用语言。JPEG图片、HTML页面、文本文件、MPEG电影、WAV音频文件、Java程序等都是存储在web服务器上的资源,HTTP可以从全世界的web服务器上将这些资源迅速、便捷可靠地传送到客户端、浏览器或者其他应用程序。下面用一次浏览器通过HTTP访问位于远端服务器上的一个HTML页面资源的全过程加深对HTTP的理解。

一、浏览器通过HTTP访问位于远端服务器上的一个HTML页面资源的过程:

(1)浏览器从URL中解析出服务器的主机名(域名);

(2)浏览器将服务器主机名通过DNS(域名服务)转换成服务器的IP地址;

(3)浏览器将端口号从URL中解析出来;

(4)浏览器建立一条与web服务器的TCP(传输控制协议)连接;

(5)浏览器向服务器发送一条HTTP请求报文;

(6)服务器向客户端发送一条HTTP响应报文;

(7)关闭连接,浏览器显示文档。

二、浏览器通过HTTP访问位于远端服务器上的一个HTML页面资源的过程深入理解

(1)浏览器从URL中解析出服务器的主机名

Web上可用的每种资源 ——HTML文档、图像、视频片段、程序等 - 由一个通用资源标识符(Uniform Resource Identifier, 简称"URI")进行定位。URI有两种形式:URL和URN,

现在几乎所有的URI都是URL。URL是Uniform Resource Locator的缩写,译为“统一资源定位符”。大部分URL都遵循一种标准格式,这种格式包含三个部分:

  • 第一部分是协议(或称为服务方式),说明访问资源时使用的协议类型。这部分通常是HTTP协议(http://)。
  • 第二部分是存有资源的web服务器的主机名(比如,www.baidu.com)。
  • 第三部分是主机资源的具体地址。,如目录和文件名等。(比如,/articles/1)。

(2)浏览器将服务器主机名通过DNS(域名服务)转换成服务器的IP地址

DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)

(3)浏览器将端口号从URL中解析出来

各种传输协议都有默认的端口号,http的默认端口为80。如果输入时省略,则使用默认端口号,例如,http://www.netscape.com/index.html(假设使用默认端口) 。有时候出于安全或其他考虑,可以在服务器上对端口进行重定义,即采用非标准端口号,此时,URL中就不能省略端口号这一项,例如,http://www.netscape.com:90/index.html 。

(4)浏览器建立一条与web服务器的TCP(传输控制协议)连接

TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。在因特网协议族(Internet protocol suite)中,TCP层是位于IP层之上,应用层(HTTP就是属于应用层)之下的中间层。在TCP中需要用到IP和服务器上运行特定软件相关的TCP端口号。

(5)浏览器向服务器发送一条HTTP请求报文以及服务器向客户端发送一条HTTP响应报文

从Web客户端发往Web服务器的HTTP报文称为请求报文(request message)。从服务器发往客户端的报文称为响应报文(response message),此外没有其他类型的
HTTP报文。HTTP请求和响应报文的格式很类似。
HTTP报文包括以下三个部分:

  • 起始行

            报文的第一行就是起始行,在请求报文中用来说明要做些什么,在响应报文中说明出现了什么情况。

  • 首部字段

            起始行后面有零个或多个首部字段。每个首部字段都包含一个名字和一个值,为了便于解析,两者之间用冒号(:)来分隔。首部以一个空行结束。添加一个首部字段和添加新行一样简单。

  • 主体

           空行之后就是可选的报文主体了,其中包含了所有类型的数据。请求主体中包括了要发送给Web服务器的数据;响应主体中装载了要返回给客户端的数据。起始行和首部都是文本形式且都是结构化的,而主体则不同,主体中可以包含任意的二进制数据(比如图片、视频、音轨、软件程序)。当然,主体中也可以包含文本。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值