当前位置: 首页 > news >正文

大数据项目——广告数仓之HTTP概述

目录

第一章、理解URL

1.1  客户端、服务器

1.1.1  服务器与服务

1.1.2  客户端 

 1.2  URL

1.3  查询参数


第一章、理解URL

1.1  客户端、服务器

1.1.1  服务器与服务

所谓服务器,其实就是一台24小时不关机的计算机,它也有自己的cpu、内存、网卡、硬盘以及操作系统(一般是各种发行版linux)。这些服务器和普通的电脑一样,也有目录、用户这些概念。

      假如这是香港城市大学的一台服务器,这台服务器上提供了一个web服务,所谓服务,其实就是一个24小时运行在服务器上的程序。现在,如果有别的电脑来访问这个服务,他就可以看到香港城市大学的官网了。

1.1.2  客户端 

现在,有一台客户机打开了自己的浏览器想要访问香港城市大学的官网。

但是在庞大的互联网世界中,提供服务的服务器不仅仅只有一台,我们的客户机怎么才能在茫茫机海中找到香港城市大学的服务器呢?

 1.2  URL

        答案就是URL(Uniform Resource Locator,统一资源定位符),我们经常在浏览器里输入的访问地址(比如NewsCentre | City University of Hong Kong),就是一个典型的URL。我们就是靠它定位需要访问的资源的。

URL是有固定格式的,下面我们通过一个具体的例子进行介绍。

下面这个地址是香港城市大学新闻页的URL

NewsCentre | City University of Hong Kong

将它复制到浏览器进行访问可以看到如下的页面

现在说一下URL的结构。

  • 协议头:

        冒号之前的部分,我们称为协议头。在这个URL中,我们可以说使用的是https协议。

https://www.cityu.edu.hk/media/news

  • 主机名或域名:

        ://和第一个/之间的内容是主机名或域名(还可以直接写ip地址)。

https://www.cityu.edu.hk/media/news

        严格来说,客户端通过ip地址才能在网络中找到响应的服务器。我们之前学过如何配hosts,当时就是相当于给ip地址起了别名,这样我们才能通过hadoop102、hadoop103等主机名去访问各类服务。但www.cityu.edu.hk对应的ip我们是怎么知道的呢?其实还有一个东西叫做DNS(域名解析系统),它其实是一些互联网厂商提供的一个把域名解析为ip地址的服务(它有一个域名和ip地址对应关系的表),而且DNS服务器的IP地址是事先写到路由器或上游网络设备的设置里的。

所以:

(1) 浏览器会根据DNS服务器的ip地址,找就近的DNS服务器去查询www.cityu.edu.hk的ip地址是多少。

(2) DNS响应浏览器,告诉我们www.cityu.edu.hk的ip地址是144.214.4.184。

最后,需要说明,域名是有专门的机构进行管理的,当你注册cityu.edu.hk这个域名时,别人就不能注册了。因此,可以确保域名的唯一性。

(3) 然后浏览器会在真正执行请求时,偷偷地把www.cityu.edu.hk换成ip地址。也就成了:

https://144.214.4.184/media/news

  • 端口号

        URL里其实还应该指定端口号。比如:

https://144.214.4.184:443/media/news

        但是,在极个别的情况下可以省略。比如如果协议是http,那么在URL中省略端口号,就会默认访问80端口。如果协议是https,那么省略端口号时就会默认访问443端口。没有为什么,这是互联网刚兴起时,早期约定俗称的东西。其他情况下,端口号通常需要明确指定。

  • 路径

        从第一个单斜杠(包含)及其之后,其实就是路径了。它联合前面的协议头、域名共同指定了互联网中的唯一资源(可以是视频、网页、文件或者字符串)。

        在此处,这个/media/news其实就对应香港城市大学的新闻页了。

https://144.214.4.184:443/media/news

        现在我们的浏览器(客户端)已经可以根据IP地址找到服务器了。于是浏览器就向服务器通过网络发送了一条请求。

        服务器上的程序根据URL中的路径寻找相应的文件或者执行某种程序,并将最终的结果返回给客户端。

最终,我们的页面上就能出现相应的内容了。

​​​​​​​1.3  查询参数

        不久,我们发现自己想看更多的新闻,我们想要看第二页。于是在页面最底部的页码条上点了一下2。

        这个时候,我们发现浏览器地址栏里的URL,发生了变动。

        注意问号之后的内容,它是一组由&分隔的键值对,之间用=分隔。?后的异常创,我们通常称它为“查询参数”。

当前的查询参数具有如下含义:

页码 : 1

关键字 : <没给>

        查询参数是对路径的进一步补充描述,它就像是在告诉服务器,我还是要看香港城市大学的新闻业,不过请给我page为1的页面。这个时候,香港城市大学的服务器又往后找了几条新闻,返回到了你的浏览器上。

        那么问题在于,第一次请求的时候好像没给查询参数,香港城市大学为什么知道我要看的是哪一页呢?这其实取决于他们服务器的处理逻辑,现在让我们在下方的页码栏再次点击第一页。

        此时,我们可以看到浏览器地址栏的变化。

        这个时候,查询参数变成了page=0。也就是说,请求/media/news和请求/media/news?keyword=&page=0的结果是一样的。这可以理解为香港城市大学后台程序给page设置了默认值(0),所以用户不指定这个参数也可以顺利看到内容。但这并不是到哪个网站都通用的,当你指定URL时发送请求时,服务器要给你看什么完全取决于服务器。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • centos开启samba服务
  • flutter路由配置
  • 使用Python实现深度学习模型:智能垃圾分类与环境保护
  • Navicat—如何查看历史日志
  • 默认序列化会报警告Hessian/Burlap: calss is an unknown class in WebappClassLoader
  • [MRCTF2020]Ezpop
  • Linux驱动开发—设备树描述引脚复用 Pinmux 与Pinctrl
  • (24)(24.1) FPV和仿真的机载OSD(三)
  • 【图书推荐】《数据资产管理核心技术与应用》
  • JAVA中的Wrapper类
  • 认识消息队列:Spring Boot 实现 MQ 消息队列,解锁异步、削峰、广播等高级功能!
  • Pygame游戏开发进阶:碰撞检测和声音效果
  • 武汉流星汇聚:中国制造业与跨境电商共舞,性价比领先全球电商平台
  • django基于大数据的电影推荐系统-计算机毕业设计源码71246
  • 【计算机网络——1.4接入网和物理媒体】
  • 【5+】跨webview多页面 触发事件(二)
  • Android Studio:GIT提交项目到远程仓库
  • Codepen 每日精选(2018-3-25)
  • ES2017异步函数现已正式可用
  • IndexedDB
  • isset在php5.6-和php7.0+的一些差异
  • Nodejs和JavaWeb协助开发
  • 记一次和乔布斯合作最难忘的经历
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 前端设计模式
  • 三分钟教你同步 Visual Studio Code 设置
  • 深入体验bash on windows,在windows上搭建原生的linux开发环境,酷!
  • 使用Envoy 作Sidecar Proxy的微服务模式-4.Prometheus的指标收集
  • 小程序button引导用户授权
  • 职业生涯 一个六年开发经验的女程序员的心声。
  • Linux权限管理(week1_day5)--技术流ken
  • (06)金属布线——为半导体注入生命的连接
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (30)数组元素和与数字和的绝对差
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (7) cmake 编译C++程序(二)
  • (C#)一个最简单的链表类
  • (el-Transfer)操作(不使用 ts):Element-plus 中 Select 组件动态设置 options 值需求的解决过程
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (poj1.3.2)1791(构造法模拟)
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)ssm高校社团管理系统 毕业设计 234162
  • (附源码)ssm基于jsp的在线点餐系统 毕业设计 111016
  • (附源码)计算机毕业设计SSM疫情居家隔离服务系统
  • (淘宝无限适配)手机端rem布局详解(转载非原创)
  • (转) RFS+AutoItLibrary测试web对话框
  • (转载)VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET COER+CONSUL微服务项目在CENTOS环境下的部署实践
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .net 连接达梦数据库开发环境部署
  • .NET 依赖注入和配置系统
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)