万维网

www的概念与组成结构

1.www的概念

  www是world wide web的缩写,是一个资料空间,这个空间中,有用的事物被称为“资源”,并由全球“统一资源定位符”标识。这些资源通过超文本传输协议(HTTP)传送给使用者,而后者通过单击连接来获取资源。

2.www的组成

  统一资源定位符(URL):一般格式为 <协议>://<主机>:<端口> / <路径>

  超文本传输协议(HTTP):应用层协议,使用TCP连接进行可靠的传输。

  超文本标记语言(HTML):用一些预定的标记来描述页面上的各种信息

万维网的工作过程

  以访问清华大学的网站为例:

  1)浏览器分析链接指向页面的URL (https://www.tsinghua.edu.cn/publish/thu2018/index.html

  2)浏览器向DNS请求解析www.tsinghua.edu.cn的IP地址

  3)域名系统DNS解析出清华大学服务器的IP地址

  4)浏览器知道 IP 地址后,通过 TCP 向服务器发送连接请求

  5)万维网站点都有一个服务器进程,它不断地监视TCP的端口(默认80),一旦监听到请求后,建立连接

  6)浏览器发出HTTP请求:/publish/thu2018/index.html

  7)  服务器通过 HTTP响应把文件 index.html 发送给浏览器

  8)TCP连接释放

  9)浏览器解释文件 index.html,并把页面显示给用户

HTTP

  http是无状态的,简化了服务器的设计。

  http采用了 TCP 作为传输层协议,从而保证了数据的可靠传输。

HTTP server 1.0

  单进程,一旦阻塞就完了

HTTP server 2.0:多进程

   当接收连接以后,创建子进程来接管新的socket,这样主进程就不会阻塞了,这样可以接受新的连接了。

HTTP server 3.0:select模型

  在 2.0版本中,采用多进程来解决并发的问题,但是进程需要消耗大量的系统资源,每次切换进程更是麻烦。

  一个socket 连接就是一个所谓的文件描述符,用“进程”这个重量级的东西来表示它有点浪费。

  从前阻塞是因为 浏览器还没有把数据发过来,而http迫不及待的想读,就被阻塞了,单进程情况下,一旦阻塞,什么事儿都干不了。

  现在http server每次把 一批socket的编号传给操作系统,操作系统可以在后台检查 这些socket,一旦发现 可以读写了,就把对应的socket   做个标记,http server就被唤醒了。

  联想:有点类似中断系统,早期的时候轮循,后来改为中断系统。

HTTP server 4.0:epoll模型

  在 3.0版本的基础上微微改动,操作系统直接返回需要处理的 socket的编号,http server不需要挨个遍历。

 

 

 

  

  

 

posted @ 2020-04-05 15:24  天凉好个秋秋  阅读(1449)  评论(0编辑  收藏  举报