万维网(www)

2023-11-16

万维网(www)是互联网中使用最广泛的一种应用,是一个超大规模线上信息储藏所,以链接的形式为用户提供信息检索服务。

万维网的核心作用:使得信息在网上自由传输。

万维网提供分布式的信息检索服务:

  • 箭头代表以链接的形式跳转到其他页面,这种方式使得一个网站可以和多个网站连接在一起
  • www以客户/服务器的方式工作,浏览器就是计算机上的万维网客户程序
  • www文档所驻留的计算机的运行服务程序,也称为万维网服务器
  • 客户端向服务器程序发出请求,服务器程序向客户程序送回客户所要的万维网文档。在客户程序主窗口上显示出的万维网文档称为页面。

万维网的核心技术:

 通过浏览器我们可以访问到各式各样的页面大致流程如下:

  • 浏览器中输入网址
  • DNS服务器解析
  • 获取内容(传输)
  • 显示内容(显示)
  • 筛选内容

万维网的4个核心技术:

 

 1.统一资源定位(URL)

URL为互联网上的所有资源提供了一个位置定位和访问资源的方法,URL相当于指向每一个可访问资源的指针,这个指针指向的地址是唯一可区分和定位的。

URL格式如下:

  •  端口号一般可以省略。
  • 浏览器为了方便用户使用  协议://   这部分也可以省略  但浏览器会自动补齐

  •  一般来说路径也可以省略,一般都不会去记住路径(太麻烦)。

注意:URL中的字符步区分大小写,如果默认不是采用HTTP,则要写清楚协议类型 

2.超文本传输协议(HTTP)

HTTP使用的是TCP作为传输协议,保证数据的可靠传输。端口为80端口

HTTP分为两部分:

  • 客户端向服务器发送请求
  • 服务器把文档发送给客户

 大致过程为:客户端浏览器发送TCP连接请求,和服务器创建连接,然后客户浏览器发送HTTP请求报文,服务器收到后发送HTTP相应报文,最后释放TCP连接。

 请求一个万维网文档的流程为:

 HTTP访问万维网页面时所需时间:

TCP的连接需要“3次握手”才能成功连接,可以将HTTP请求作为第3次握手的内容,所以TCP连接需要RTT(万维网客户机和万维网服务器的往返时延),HTTP请求和HTTP相应报文到达客户时,需要RTT,文件传输需要时间T。

 提高访问速度:

在DNS中使用到了高速缓存,在这里也可以使用高速缓存,把最近的请求和相应存放到本地磁盘中,当请求于本地磁盘中一致时,直接返回相应,节省了去互联网访问改资源的时间。为保证实时性,也需要及时更新万维网的高速缓存的内容。

HTTP的特点:

HTTP是一种无状态协议,即服务器不保留与客户交易时的任何状态。这就大大减轻了服务器记忆负担,从而保持较快的响应速度。

HTTP是一种面向对象的协议,允许传送任意类型的数据对象。

HTTP支持持久连接,在HTTP / 0.9和1.0中,连接在单个请求/响应对之后关闭。

HTTP的运行方式:

HTTP是基于请求/响应范式的。一个客户机与服务器建立连接后,发送一个请求给服务器,请求方式的格式为,统一资源标识符、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。

许多HTTP通讯是由一个用户代理初始化的并且包括一个申请在源服务器上资源的请求。最简单的情况可能是在用户代理(UA)和源服务器(O)之间通过一个单独的连接来完成。

中介有三种 :

  • 代理
  • 网关
  • 通道

 HTTP报文格式:

  • 请求报文格式:请求行 - 通用信息头 - 请求头 - 实体头 - 报文主体
  • 应答报文格式:状态行 - 通用信息头 - 响应头 - 实体头 - 报文主体

方法字段关键词:

  • GET:请求获取Request-URI
  • POST:在Request-URI所标识的资源后附加新的数据
  • HEAD:请求Request-URI所标识的资源响应消息报头,HEAD方法可以在响应时不返回消息体。
  • PUT:与GET相反,请求服务器存储一个资源,并用Request-URI做为其标识
  • DELETE:请求删除URL指向的资源
  • OPTIONS:请求查询服务器的性能,或者查询与资源相关的选项
  • TRACE:跟踪请求要经过的防火墙、代理或网关等,主要用于测试或诊断
  • CONNECT保留将来使用

请求字段的关键词:

  • Connetion     连接管理
  • Host              指定请求资源的主机
  • Range           请求实体的字节范围
  • User-Agent   发送请求的应用程序名称
  • Content-Type 表单的数据类型

请求正文:

可选部分,比如GET请求就没有请求正文

HTTP版本区别:

HTTP1.0:使用无连接、无状态,浏览器每次请求都需要与服务器建立一个 TCP 连接,服务器处理完成后立即断开 TCP 连接,不会记录过去的请求。

HTTP1.1:使用长连接,通过 Content-Length 字段来判断当前请求的数据是否已经全部接受。

  • 长连接的优点:没有明确提出断开连接,则保存TCP连接状态。减少连接断开的开销
  • 引入了管道机制(pipelining),即在同一个TCP连接中,客户端可以同时发送多个请求

HTTP2.0: 

  • 二进制传输:头信息和数据体都是二进制,统称为“帧”:头信息帧和数据帧
  • Header压缩:使用了专门为首部压缩而设计的 HPACK 算法
  • 多路复用:双工通信,在一个连接里,客户端和浏览器都可以同时发送多个请求和响应,而不用按照顺序一一对应,这样避免了“队头堵塞”
  • 服务端推送:新建“流”主动向客户端发送消息,这叫做服务器推送(server push)。

HTTPS:

HTTPS基于安全SSL/TLS(安全套接层Secure Sockets Layer/安全传输层Transport Layer Security)层,HTTPS默认使用443端口。

不使用SSL/TLS的风险:

  • 窃听风险
  • 篡改风险
  • 冒充风险 

SSL/TLS的基本思路是公钥加密法:客户端先向服务器索要并验证公钥,然后用公钥加密传输来协商生成“对话秘钥”(非对称加密),双方采用“对话秘钥”进行加密通信(对称加密)。 

HTTP的状态码:

  • 1xx(切换协议)表示临时响应并需要请求者继续执行操作的状态码
  • 2xx(成功)表示成功处理了请求的状态代码。
  • 3xx(重定向)表示要完成请求,需要进一步的操作。通常,这些状态码用来重定向
  • 4xx(请求错误)这些状态码表示请求可能出错,妨碍了服务器的处理。
  • 5xx(服务器错误)这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

1xx(切换协议)表示临时响应并需要请求者继续执行操作的状态码 

消息

描述

100 Continue

服务器仅接收到部分请求,但是一旦服务器并没有拒绝该请求,客户端应该继续发送其余的请求。

101 Switching Protocols

服务器转换协议:服务器将遵从客户的请求转换到另外一种协议。

2xx(成功)表示成功处理了请求的状态代码。

消息

描述

200 OK

请求成功(其后是对GET和POST请求的应答文档。)

201 Created

请求被创建完成,同时新的资源被创建。

202 Accepted

供处理的请求已被接受,但是处理未完成。

203 Non-authoritative Information

文档已经正常地返回,但一些应答头可能不正确,因为使用的是文档的拷贝。

204 No Content

没有新文档。浏览器应该继续显示原来的文档。如果用户定期地刷新页面,而Servlet可以确定用户文档足够新,这个状态代码是很有用的。

205 Reset Content

没有新文档。但浏览器应该重置它所显示的内容。用来强制浏览器清除表单输入内容。

206 Partial Content

客户发送了一个带有Range头的GET请求,服务器完成了它。

 3xx(重定向)表示要完成请求,需要进一步的操作。通常,这些状态码用来重定向

消息

描述

300 Multiple Choices

多重选择。链接列表。用户可以选择某链接到达目的地。最多允许五个地址。

301 Moved Permanently

所请求的页面已经转移至新的url。

302 Found

所请求的页面已经临时转移至新的url。

303 See Other

所请求的页面可在别的url下被找到。

304 Not Modified

未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。

305 Use Proxy

客户请求的文档应该通过Location头所指明的代理服务器提取。

306 Unused

此代码被用于前一版本。目前已不再使用,但是代码依然被保留。

307 Temporary Redirect

被请求的页面已经临时移至新的url。

 4xx(请求错误)这些状态码表示请求可能出错,妨碍了服务器的处理。

消息

描述

400 Bad Request

服务器未能理解请求。

401 Unauthorized

被请求的页面需要用户名和密码。

402 Payment Required

此代码尚无法使用。

403 Forbidden

对被请求页面的访问被禁止。

404 Not Found

服务器无法找到被请求的页面。

405 Method Not Allowed

请求中指定的方法不被允许。

406 Not Acceptable

服务器生成的响应无法被客户端所接受。

407 Proxy Authentication Required

用户必须首先使用代理服务器进行验证,这样请求才会被处理。

408 Request Timeout

请求超出了服务器的等待时间。

409 Conflict

由于冲突,请求无法被完成。

410 Gone

被请求的页面不可用。

 5xx(服务器错误)这些状态码表示服务器在尝试处理请求时发生内部错误。这些错误可能是服务器本身的错误,而不是请求出错。

消息

描述

500 Internal Server Error

请求未完成。服务器遇到不可预知的情况。

501 Not Implemented

请求未完成。服务器不支持所请求的功能。

502 Bad Gateway

请求未完成。服务器从上游服务器收到一个无效的响应。

503 Service Unavailable

请求未完成。服务器临时过载或宕机。

504 Gateway Timeout

网关超时。

505 HTTP Version Not Supported

服务器不支持请求中指明的HTTP版本。

HTML(超文本标记语言)

是一种专门制作万维网的一种语言,一般和CSS一起配套使用。CSS(层叠样式表)

搜索引擎:

由于互联网中的内容多,想要找到自己所需的内容时,需要使用搜索引擎

搜索引擎分为:

  • 全文搜索引擎
  • 分类目录搜索引擎

 1.全文搜索引擎:

通过建立一个大的在线数据库供用户查询。刚开始数据库内的网站为空,然后通过搜索软件在互联网上的各网站收集信息,找到的网站把他放到数据库中,并将相关的网站也添加到数据库中,这些在线数据库按照一定的规则建立索引。(Goolge和百度)

2.分类目录搜索引擎:

不采集网站信息,而是利用各网站向搜索引擎提交网站信息时所填写的关键词和网站描述等信息,经过审核后,符合网站登录的条件,则输入到分类目录的数据库中,供用户使用。

(新浪,搜狐,网易等)

这两种引擎的区别:

全文搜索引擎 分类目录搜索引擎
内容 所有页面链接 所有分类网站的主页
是否需要关键词 需要 不需要
搜索的条理 较弱 较强

参考资料:

HTTP_百度百科 (baidu.com)

详解HTTP/1.0、HTTP/1.1、HTTP/2、HTTPS - 腾讯云开发者社区-腾讯云 (tencent.com)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

万维网(www) 的相关文章

  • Vue+ElementUI电商项目(六)

    订单列表 创建订单列表路由组件并添加路由规则 在view中新建orderManagement文件夹 新建Order vue组件 组件中添加代码如下
  • Pandas基本操作——增加、修改和删除

    数据的增加 按列增加数据 按行增加数据 增加多行数据 修改数据 修改列标题 使用DataFrame对象的columns属性直接赋值 使用DataFrame对象的rename方法修改列标题 修改行标题 使用DataFrame对象的index属
  • vue3:el-table多选框设置默认选中,翻页保留选中状态

    问题 el table多选框设置默认选中 进行翻页 之前选中的数据没有保留选中状态
  • 设计模式-模板方法模式

    一 模板方法模式 定义 定义一个操作中的算法骨架 而将一些步骤延迟到子类 模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤 类型 行为型模式 特点 通过把不变的行为搬移到超类 去除子类中的重复代码来体现它的优势 提供了

随机推荐

  • 【4】数据结构与算法--- 数据结构 进阶

    第 3 章 数据结构 进阶 3 1 线性表 线性表 按照某种线性关系存储下来的表 分类 线性表 说明 顺序表 将数据放在一个连续的存储空间 链表 把数据分散存储 按照某种关系连成串分类 单向链表 双向链表 单向循环链表 3 2 顺序表 3
  • python怎么一次输入两个数_python如何一次性输入多个数

    python一次性输入多个数的方法 1 输入两个数字 m n map int input split 2 输入三个及三个以上数字 a b c d map int input split python一次性输入多个数的方法 1 输入一个数字直
  • 在NLP上,CNN、RNN、MLP三者相比各有何优劣

    本文为知乎温颖就如下问题的回答 已授权CSDN转载 若想要实现某个具体的任务 如做关系抽取 实体识别 情感分类等 在不考虑实现的难度的情况下 如何从理论 经验 直觉上去选择最有希望的模型 前段时间做过用不同的神经网络模型做文本分类 情感分析
  • Linux(vi基本用法)

    在Linux下 可以键入vimtutor命令 有一个包含实操的vim教程 1 VI的三种命令模式 1 Command 命令 模式 用于输入命令 2 Insert 插入 模式 用于插入文本 3 Visual 可视 模式 用于视化的的高亮并选定
  • 报错:flask: TypeError: ‘function‘ object is not iterable

    错误 TypeError function object is not iterable Type错误 表示 函数 对象不是可迭代的 这是我在学习flask时在html模板中 进行for循环遍历闪现消息时缺少 导致遍历对象为一个函数 报错代
  • tomcat虚拟目录和虚拟主机等相关配置

    一 WEB 服务器 1 什么是WEB 服务器 就是一台电脑 安装了一个服务器软件 2 为什么需要安装 WEB 服务器 思考问题 从一台计算机的 IE 浏览器如何去访问另一台计算机中的文件 2 1 两台计算机是如何实现通讯的 IP地址 计算机
  • mesa 教程

    只有这个是靠谱的 Compiling and Installing The Mesa 3D Graphics Library latest documentation
  • yolov4训练自己的数据模型

    看了下yolov4的作者给的操作说明 链接如下 https github com AlexeyAB darknet how to compile on linux using make 有兴趣的可以去看看 总结起来 跟yolov3的操作方式
  • SpringCloud 商城系统搭建之Hystrix(基于Feign)

    前提 1 Feign在整合到Spring Cloud时已经自带了hystrix模块 所以pom xml中不需要额外引入feign依赖 2 本文是基于SpringCloud 商城系统搭建之eureka 一 基于Feign使用熔断器 按照下面步
  • H.264概述

    我的百科 我的贡献 草稿箱 百度首页 登录 新闻 网页 贴吧 知道 MP3 图片 视频 百科 帮助设置 添加到搜藏 返回百度百科首页 编辑词条 H 264
  • STM32控制L298n(从零开始)

    一 L298N模块简介 L298N是一款驱动模块 单片机通过向IN1 IN2 IN3 IN4输入PWM波从而控制OUT1 OUT2 ENA与ENB为使能引脚 使能引脚两根排针一定要短接 12v为模块供电 5v为单片机供电 二 L298N的逻
  • 什么是CentOS

    什么是CentOS CentOS是Community ENTerprise Operating System的简称 我们有很多人叫它社区企业操作系统 不管你怎么叫它 它都是linux的一个发行版本 CentOS并不是全新的linux发行版
  • MySQL密码忘记了怎么办?

    MySQL密码忘记了怎么办 本文就介绍了如何用canvas案例画出哆啦A梦的基础内容 提示 以下是本篇文章正文内容 下面案例可供参考 一 1 打开cmd命令符 先关闭正在运行的数据库 输入如下命令 二 打开mysql exe和mysqld
  • VUE的核心特性:响应式

  • 【Pytorch Lighting】第 6 章:深度生成模型

    大家好 我是Sonhhxg 柒 希望你看完之后 能对你有所帮助 不足请指正 共同学习交流 个人主页 Sonhhxg 柒的博客 CSDN博客 欢迎各位 点赞 收藏 留言 系列专栏 机器学习 ML 自然语言处理 NLP 深度学习 DL fore
  • openEuler和linux什么关系,华为openEuler和鸿蒙(HarmonyOS)不是同一个操作系统

    华为推出了新操作系统 定名为openEuler 当前已提供20 03版本下载 有人不解的问 它跟鸿蒙 HarmonyOS 是不是同一个操作系统 或者有什么关系 华为openEuler和鸿蒙 HarmonyOS 100 不是同一个操作系统 并
  • string类型数组java_Java string类和数组的相关函数总结

    一 string类 1 字符串查找 1 str indexOf substr 返回substr首次在str里出现的索引 str 任意字符串对象 substr 要搜索的字符串 2 str lastIndexOf substr 返回substr
  • 洛谷P1011 [NOIP1998 提高组] 车站题解

    斐波那契数列 题目描述 火车从始发站 称为第1站 开出 在始发站上车的人数为a 然后到达第2站 在第2站有人上 下车 但上 下车的人数相同 因此在第2站开出时 即在到达第3站之前 车上的人数保持为a人 从第3站起 包括第3站 上 下车的人数
  • 拒绝摆烂!C语言练习打卡第四天

    博客主页 小王又困了 系列专栏 每日一练 人之为学 不日近则日退 感谢大家点赞 收藏 评论 目录 一 选择题 1 第一题 2 第二题 3 第三题 二 编程题 1 第一题 2 第二题 前言 在前面我们学习完C语言的所以知识 当然练习巩固也不能
  • 万维网(www)

    万维网 www 是互联网中使用最广泛的一种应用 是一个超大规模线上信息储藏所 以链接的形式为用户提供信息检索服务 万维网的核心作用 使得信息在网上自由传输 万维网提供分布式的信息检索服务 箭头代表以链接的形式跳转到其他页面 这种方式使得一个