网络应用之Web

时间:2024-03-18 16:32:01

Web

目录


Web是一个网路应用,Web的全称是World Wide Web(万维网)。Web是第一个进入人们视野的因特网应用。

我们在第一章中提到,网路应用都有其网络应用的体系结构,网络应用的体系结构分为三种,

  • Client-Sever,
  • P2P,
  • 二者混合的体系结构

Web是一个网路应用,Web的网络应用体系结构是Client-Server。Web的应用层协议是HTTP。
既然Web的体系结构是Client-Server,所以HTTP由两个程序实现,客户端程序和服务器程序,客户端程序和服务器程序在不同的端系统上执行,这两个进程通过HTTP报文进行通讯。

注意HTTP由两个程序实现,所以才有了第一次实验任务——使用Java实现Web服务器程序!那有人就要问了客户端程序怎么办?我们的浏览器就是的呀,就不用我们自己实现了。

我们在第一章中讲到,定义一个协议的关键元素是:报文的交换以及发送和接收这些报文时所采取的动作。一个协议定义的在两个或者多个通信实体之间交换报文的格式和次序,以及报文发送/接收或者是其他事件采取的动作。

所以HTTP协议应该定义下面这些东西:

  • HTTP报文的结构
  • 客户端和服务器是如何交换报文的

介绍一些新事物,总是有一些新概念,记住就好了。

Web page(Web页面,也叫文档)

Web页面是什么?我想就是我们浏览的每一个网页

对象

Web页面包含对象,一个对象就是一个文件,例如一个HTML文件,一个Jpg图片,一个Java applet, 一个视频,这些都是可以通过一个URL来进行定位的。

HTML基本文件(base HTML file)

Web页面包含一个HTML基本文件和几个被应用的对象。
举个例子,如果一个Web页面包含HTML文本和5张图片,那么这个Web页面就有6个对象:HTML基本文件+5张图片。 HTML基本文件使用其他对象的URL引用了页面的其他对象。

URL

每一个URL包含两个部分:

  • 存储对象的服务器的主机名
  • 这个对象的路径名

举个例子
http://www.someSchool.edu/someDepartment/picture.gif
www.someSchool.edu 是主机名
/someDepartment/picture.gif 是对象的路径

Web浏览器

因为Web浏览器(例如IE,Firefox, chrome)实现了HTTP的客户端,在Web的上下文下,我们可能会交叉使用浏览器和客户端这两个词。意思就是说,我们说浏览器就是指的是Web客户端。

Web服务器

Web服务器实现了HTTP的服务器端,存储Web对象,每个对象都是可以被URL定位的。比较普遍的Web服务器包括Apache, microsoft internet information server.

了解了这些概念之后,HTTP协议的内容可以更新一下了。
所以HTTP协议应该定义下面这些东西:

  • HTTP报文的结构
  • 客户端和服务器是如何交换报文的—>客户端是如何从Web服务器中请求页面,服务器是如何将Web页面传送给客户端的。
    大致的交互如下图
    网络应用之Web
    当一个用户请求一个Web页面的时候(例如,点击了一个超链接),浏览器将这个页面中有关对象的HTTP请求报文发送给服务器。服务器收到请求,回复以包含这些Web对象的HTTP响应报文。

HTTP是应用层协议,那么HTTP依赖于什么传输层协议呢?是TCP还是UDP!答案是TCP!

HTTP使用的是TCP, TCP , TCP, TCP, TCP!

1.HTTP客户端和服务器初始化一个TCP连接
2.浏览器和服务器进程通过他们的套接字接口access TCP

在第一章讲到,套接字是应用程序和运输层协议的接口,通过套接字,程序开发者可以选择运输层的协议。
在客户端,套接字接口就是客户端进程和TCP连接之间的门。
在服务器端,套接字接口就是服务器进程和TCP连接之间的门。

只要客户端或者服务器把报文交给了套接字接口,这个报文就出手了,就到了TCP手里了,接下来的就不用你操心了,保准给你运送到。

有个重点要注意:服务器将客户端请求的文件发送给客户端,是没有保存任何客户端的状态信息的。

无状态协议

因为HTTP服务器没有维持对客户端的任何信息吗,因此HTTP被称为是无状态协议。