web的一些知识点

作者:闲狗
来源:CSDN
原文:https://blog.csdn.net/wydyd110/article/details/81030827

一. 定义

  1. Web:World Wide Web, 其内容以页面的形式表现。

     超文本(Hypertext):一个页面指向另一个页面。用户单击一个链接就可以来到该链接所指向的页面。
     超媒体(Hypermedia):超文本和多媒体的结合。用户可以在页面激活一段声音,显示一个图形,甚至播放一段视频。
     超文本传输协议(HTTP) :Web浏览器向一个或多个Web服务器发送请求,服务器以页面的内容作为响应。这里的“请求-响应”协议,即HTTP协议基于文本协议,运行于TCP之上。
    
  2. 浏览器:显示页面的程序。

  3. 统一资源定位符(URL,Uniform Resource Locator):用类标识每个页面。包含三部分:协议,域名,路径。如:

    http(协议)://www.cs.washington.edu(域名)/index.html(页面的路径)
    
  4. Web的体系结构

     (图片来源自Andrew S.Tanenbaum与David J.Wetherall的《计算机网络(第五版)》)
    

    图中Web浏览器向三个服务器(youtube.com, www.cs.washington.edu, google-analytics.com)发送请求,从而获得了两个页面。来自不同服务器的内容集成在一起通过浏览器显示。www.cs.washington.edu服务器提供了主页面,youtube.com服务器提供了一段嵌入的视频,google-analytics.com服务器没有提供任何用户可见的内容,但它追踪访问网站的用户。

二. 网络结构模式

  1. C/S(Client/Server)

    客户端/服务器端架构,典型的两层结构。
    客户端:一个或多个在用户电脑上运行的程序。
    服务器端

    1. 数据库服务器端:客户端通过数据库连接访问服务器端的数据

    2. Socket服务器端:服务器端的程序通过Socket与客户端的程序通信

  2. B/S(Browser/Server)-这里主要介绍该模式

    浏览器/服务器架构,三层结构
    Browser客户端 :负责处理显示逻辑
    Web服务器 :负责处理事务逻辑
    数据库服务器

(图片来源于:http://www.ltesting.net/html/84/n-141684.html)

三. 客户端-浏览器Browser

  1. 一个浏览器是一个应用程序,负责将用户选择的web资源呈现出来。

  2. 浏览器的组成

主要组件:

    用户界面 - 包括地址栏、后退/前进按钮、书签目录等
    浏览器引擎 (Browser engine)- 用来查询及操作渲染引擎的接口
    渲染引擎 (Rendering engine)- 浏览器的内核,负责将网页代码转化成可见的页面
    网络 - 完成网络调用
    UI后端 - 用来绘制类似组合选择框及对话框等基本组件,底层使用操作系统的用户接口
    JS解析器 - 用来解释执行JS代码
    数据存储 -  浏览器在用户磁盘中保存类似于Cookie的各种数据。HTML5定义了一种轻量级的客户端存储技术Web Database技术 
  1. 当用户点击一个超链接时,浏览器执行的系列步骤

    (1)浏览器确定URL

    (2)浏览器请求DNS查询www.cs.washington.edu服务器的IP地址

    (3)DNS返回128.208.3.88

    (4)浏览器与128.208.3.88机器的80端口建立一个TCP连接(80端口是HTTP协议的默认端口)

    (5)浏览器发送HTTP报文,请求/index.html页面

    (6)www.cs.washington.edu服务器向浏览器响应页面,如发送文件/index.html

    (7)若该页面包括需要显示的URL,浏览器通过相同的处理过程获取其他URL。该例子中,URL包括多个取自www.cs.washington.edu的内嵌图像,一段取自youtube.com的内嵌视频和一个取自google-analytics.com的脚本。

    (8)浏览器渲染显示页面/index.html

    (9)若短期内没有向同一个服务器发送其他请求,释放TCP连接。

四. Web服务器端

  1. Web服务器的工作流程

    接受来自浏览器的TCP连接请求
    获取页面的路径,即被请求文件的名字
    从磁盘中读取文件
    将文件内容响应给浏览器
    释放该TCP连接
    
  2. 为了解决文件访问瓶颈,减少读磁盘的操作,会在内存中维护一个缓存,保存着n个最近使用过的文件或者内容。服务器从磁盘读取文件前,首先检查缓存。

  3. 为了解决一次只能服务一个请求的问题,将服务器设计成多线程(multithreaded)模式。

            (图片来源自Andrew S.Tanenbaum与David J.Wetherall的《计算机网络(第五版)》)
    

多线程服务器由一个前端模块和一个处理模块组成。前端模块接收所有入境请求; k+1个线程全部属于同一个进程,所有处理模块(线程)都可以访问当前进程地址空间中的缓存。

五. Cookie

    小甜饼Cookie,一小段文本信息,由浏览器存储在客户机磁盘Cookie目录下
    Cookie只是字符串,最多4KB,不是可执行程序,因而不存在病毒得以实际运行从而造成损害

六. HTTP协议

  1. HTTP简介

     HTTP协议(Hyper Text Transfer Protocol超文本传输协议),用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器。
     应用层协议,请求-响应协议,运行在TCP之上。
     HTTP默认端口号为80。浏览器通常与服务器的80端口建立TCP连接。
     无连接:每次连接只处理一个请求。服务器处理完客户端的请求,并收到客户端的应答后,即断开连接。节省传输时间。
     无状态:对事务处理没有记忆能力,若后续处理需要前面的信息,则必须重传。
    
  2. HTTP方法
    方法 描述
    GET 请求服务器发送页面(完成查询操作)
    HEAD 请求一个Web页面的消息头
    POST

向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

(完成增删改操作)
PUT 向服务器写入一个Web页面
DELETE 删除页面
TRACE 回显服务器收到的请求,用于测试或诊断
CONNECT 通过代理连接
OPTIONS 一个页面的查询选项
3. 各种协议与HTTP协议的关系

(来源于《图解HTTP》)

七. TCP/IP通信传输流


作者:闲狗
来源:CSDN
原文:https://blog.csdn.net/wydyd110/article/details/81030827
版权声明:本文为博主原创文章,转载请附上博文链接!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值