• 万维网


    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不需要挨个遍历。

      

      

  • 相关阅读:
    Django RequestContext用法
    【Django】Django命令(Manager.py)
    Django:快速搭建简单的Blog
    win7下安装Ubuntukylin-14.04双系统
    activity生命周期
    Activity(三)
    BZOJ 3944 Sum 解题报告
    BZOJ 3901 棋盘游戏 解题报告
    web框架之socket
    新式类__new__()方法
  • 原文地址:https://www.cnblogs.com/juanzhi/p/12636629.html
Copyright © 2020-2023  润新知