2.3网络应用之Web

World Wide Web

inventor:Tim Berners-Lee
time of invention:1990

Web的构成:

  • 网页(基本要素)
  • 网页互相链接(从而形成一个庞大的信息网络/内容网络/服务网络)
网页(Web Page)包含多个对象(objects):
  • 对象:HTML文件、JPEG图片、视频文件、动态脚本等
  • 基本HTML文件:包含对其他对象引用的链接
对象的寻址(addressing)
  • URL(uniform resource locator):统一资源定位器 RFC1378
  • URL格式:Scheme://host:port/path Scheme(协议,比如HTTP)

Web遵循的协议之HTTP协议概述(1)

  • Web应用遵循什么协议?
    HTTP 超文本传输协议 HyperText Transfer Protocol
  • HTTP协议采用的是C/S网络结构
    客户:Brower 请求,接收,展示Web对象
    服务器:Web Server 响应客户端的请求,生成响应消息,发送对象。最典型的webserver软件是Apache,它是事实上的标准。
  • HTTP版本:
    1.0 RFC1945
    1.1 RFC2068

Web遵循的协议之HTTP协议概述(2)

HTTP协议使用的传输层协议是什么?
使用的是TCP传输服务,大致过程如下

  • 服务器在80端口等待客户的请求
  • 浏览器发起到服务器的TCP连接(创建套接字socket)
  • 服务器接受来自浏览器的TCP连接
  • 浏览器(HTTP客户端)与服务器(HTTP服务端)交换HTTP消息
  • 关闭TCP连接

HTTP协议是无状态协议

  • 服务器不维护(记录等)任何有关客户端过去行为(所发请求)的信息,通俗的说,每次HTTP请求都是新的,和之前的请求没有任何关联,只要请求就响应。

有状态的协议更加复杂,一般来说,人们更喜欢无状态的协议,因为简单:

  • 需要维护状态(历史信息)
  • 如果客户或服务器失效(比如重启),会产生状态的不一致,解决这种不一致代价高

HTTP连接 - HTTP有两种连接类型

非持久性连接(Nonpersistent HTTP)
  • 每个TCP连接最多允许传输一个对象
  • HTTP 1.0使用非持久性连接
持久性连接(Persistent HTTP)
  • 每个TCP连接允许传输多个对象
  • HTTP 1.1默认使用持久性连接

通过一个实例,比较两者的优劣,一个网页,包含十张图片。
非持久性连接比持久性连接,耗费更多的TCP资源,给服务端造成更多的负载。
在这里插入图片描述
通过上图,我们可以看到,非持久性连接需要为这11个网页对象不断重复上述1-5步骤,如果浏览器采取串行请求的方式,那么将会耗费:(2RTT+文件传输时间)*11,如果浏览器采取并行请求的模式,那么虽然时间缩短了,但是会给服务器造成更大负载(TCP连接的资源开销比较大)。
而持久性连接,建立一个TCP连接,就可以收到所有请求对象。而且后续10个对象,耗时要短,只需要1个RTT。

HTTP消息格式:

ASCII

HTTP请求消息:

GET /somedir/page.html HTTP/1.1 请求行: 请求方法 请求对象路径 HTTP版本
Host:www.someschool.edu 请求头:域名
User-agent:Mozilla/4.0 请求头:
Connection:close 请求头:连接可否断开
Accept-language:fr 请求头:语言
空行
(extra carriage return,line feed) Entity Body

HTTP请求消息通用格式:
在这里插入图片描述

HTTP响应消息:

HTTP/1.1 200 OK 状态行:协议版本 状态码
Connection:close 响应头
Date:Thu,06 Aug 1998 12:00:15 GMT 响应头
Server:Apache/1.3.0(Unix) 响应头
Last-Modified:Mon,22 Jun 1998 响应头
Content-Length:6821 响应头
Content-Type:text/html 响应头
空行
data data data data data data 响应体
常见的状态码:
200 OK
301 Moved Permanently
400 Bad Request
404 Not Found
505 HTTP Version Not Supported

HTTP1.0方法:GET POST HEAD
HTTP1.1方法:GET POST HEAD PUT DELETE

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值