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

news2024/12/24 2:53:15

目录

第一章、理解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时发送请求时,服务器要给你看什么完全取决于服务器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1987274.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker更新镜像源小记

Docker镜像源无法访问 进入docker目录 cd /etc/docker/编辑daemon.json文件&#xff0c;如果没有&#xff0c;则新建 {"registry-mirrors": ["https://dockerproxy.cn"] }收集一些镜像源地址&#xff0c;未测是否能用 “https://hub.uuuadc.top”,“htt…

Android 埋点信息分析——内存篇

源码基于&#xff1a;Android U 0. 前言 在前一篇《Android statsd 埋点简析》一文中简单剖析了Android 埋点采集、传输的框架&#xff0c;本文在其基础对埋点信息进行解析&#xff0c;来看下Android 中埋下的内存信息有哪些。 1. 通过代码剖析google 埋点内容 1.1 PROCESS_M…

网络安全之sql靶场(11-23)

sql靶场&#xff08;11-23&#xff09; 目录 第十一关&#xff08;post注入&#xff09; 第十二关 第十三关 第十四关 第十五关 第十六关 第十七关 第十八关 第十九关 第二十关 第二十一关 第二十二关 第二十三关 第十一关&#xff08;post注入&#xff09; 查看…

echart 制作 Grafana 面板之仪表盘

目录 前言准备工作实现代码代码详解总结相关阅读 前言 Grafana 是一个开源的可视化监控工具&#xff0c;支持多种数据源&#xff0c;并且可以创建丰富的仪表盘。ECharts 是一个强大的开源数据可视化库&#xff0c;通过结合这两者&#xff0c;我们可以创建自定义的仪表盘&…

GPIO输出控制之LED闪烁、LED流水灯以及蜂鸣器应用案例

系列文章目录 STM32之GPIO&#xff08;General Purpose Input/Output&#xff0c;通用型输入输出&#xff09; 文章目录 系列文章目录前言一、LED和蜂鸣器简介1.1 LED1.2 蜂鸣器1.3 面包板 二、LED硬件电路2.1 低电平驱动电路2.2 高电平驱动电路 三、蜂鸣器硬件电路3.1 PNP型三…

使用idea 把一个git分支的部分提交记录合并到另一个git分支上

一、需求 需要将A&#xff08;合并分支&#xff09;分支上的提交记录中的某一次&#xff08;或几次&#xff09;提交合并到B&#xff08;被合并分支&#xff09;分支上 说明&#xff1a;熟练使用idea可以直接看下图即可&#xff0c;若不熟悉可以根据下列步骤进行操作&#xf…

富士乐施5070-V打印机驱动安装

富士乐施5070-V打印机驱动安装 特指打印A3纸张需求&#xff0c;即驱动中能够选择纸张类型&#xff08;安装选择305df驱动只能打印A4类型&#xff09; 富士乐施打印机驱动下载网址&#xff1a; https://m3support-fb.fujifilm-fb.com.cn/driver_downloads/www/ 安装流程&…

C#自定义快捷操作键的实现 - 开源研究系列文章

这次想到应用程序的快捷方式使用的问题。 Windows已经提供了API函数能够对窗体的热键进行注册&#xff0c;然后就能够在窗体中使用这些注册的热键进行操作了。于是笔者就对这个操作进行了整理&#xff0c;将注册热键操作写成了帮助类&#xff0c;并且用此博文来记录这个使用DEM…

【教程】linux-ubuntu安装并配置docker

linux-ubuntu安装并配置docker 一、在线安装1.卸载历史版本情况一&#xff1a;如果之前是手动安装的话&#xff0c;一步一步卸载情况二&#xff1a;通过APT安装 2.使用APT安装&#xff08;推荐&#xff09;(1) 添加https软件包&#xff08;2&#xff09;在apt源中添加docker软件…

kubernets学习笔记——使用kubeadm构建kubernets集群及排错

使用kubeadm构建kubernets集群 一、准备工作1、repo源配置&#xff1a;阿里巴巴开源镜像源2、更新软件包并安装必要的系统工具3、同步时间4、禁用selinux5、禁用交换分区swap6、关闭防火墙 二、安装docker-ce、docker、cri-docker1、安装docker-ce2、开启内核转发&#xff0c;转…

【学习笔记】A2X通信的协议(四)- A2X PC5通信(二)

目录 6.1.2.4 A2X PC5单播链接释放程序 6.1.2.4.1 概述 6.1.2.4.2 发起UE启动A2X PC5单播链接释放程序 6.1.2.4.3 目标UE接受的A2X PC5单播链接释放程序 6.1.2.4.4 发起UE完成的A2X PC5单播链接释放程序 6.1.2.4.5 异常情况 6.1.2.4.5.1 发起UE的异常情况 6.1.2.5 A2X …

Linux——嵌入式学习——C++学习(1)

一、环境配置 由于之前安装过QT&#xff0c;所以直接连接网络之后&#xff0c;运行 运行之后检查安装版本 接着用qt的使用步骤 创建工程即可 三、 1、注释 单行注释&#xff1a;// 多行注释/* */ 2、auto 自动推导类型 2.1声明变量 使…

Linux小组件:makefile

引言&#xff1a; 我们在Windows下编程时使用vs这种集成开发环境&#xff0c;里面什么编译运行调试清理等等服务都被一连串打包好了。在Linux下怎么实现呢&#xff1f;使用我们伟大的makefile&#xff01; makefile是Linux下的一个工具&#xff0c;通过文本编辑器vim对文件内…

Linux内核编程(十一)设备模型

本文目录 一、知识点1. 设备模型2. sysfs 文件系统3. kobject、kset设备模型框架 二、kobject实验1. 创建kobject2. 释放kobject★示例 三、kset实验1. 创建kset2. 注销kset★示例 四、引用计数器1. 概念2. 为什么要引入引用计数器&#xff1f;3. 常用函数&#xff08;1&#x…

【Nuxt】发送请求

概述 以下方式只能在 setup / 生命周期钩子 里面使用。 useFetch 下面的 API / hooks 具体用法查看官网文档。 const BASE_URL http://codercba.com:9060/juanpi/api;// 1. $fetch server and client // $fetch(BASE_URL /homeInfo, { // method: GET // }).then(res &…

python爬虫04 | Reuqests库快速入门,干穿urllib

文章目录 Requests库简介提出请求响应内容二进制响应内容JSON 响应内容原始响应内容自定义标头更复杂的 POST 请求POST 多部分编码的文件响应状态代码响应标头Cookie重定向和历史记录超时错误和异常 Ending Requests库简介 什么是Requests库 Requests是一个简单易用的HTTP库&…

分享一个基于SpringBoot和Vue的闲置物品交易与物品租赁平台(源码、调试、LW、开题、PPT)

&#x1f495;&#x1f495;作者&#xff1a;计算机源码社 &#x1f495;&#x1f495;个人简介&#xff1a;本人 八年开发经验&#xff0c;擅长Java、Python、PHP、.NET、Node.js、Android、微信小程序、爬虫、大数据、机器学习等&#xff0c;大家有这一块的问题可以一起交流&…

人工智能计算机视觉先锋——OpenCv 的颜色检测

红色 在计算机的世界里&#xff0c;只有 0 或者1&#xff0c;如何让计算机认识颜色是计算机视觉工作者首先需要考虑的事情&#xff0c;我们知道整个世界的颜色虽然五彩缤纷&#xff0c;但是都是3种原色彩合成的&#xff08;R G B&#xff09;&#xff0c;有了&#xff08;R G …

C语言 | Leetcode C语言题解之第327题区间和的个数

题目&#xff1a; 题解&#xff1a; #define FATHER_NODE(i) (0 (i) ? -1 : ((i) - 1 >> 1)) #define LEFT_NODE(i) (((i) << 1) 1) #define RIGHT_NODE(i) (((i) << 1) 2)/* 优先队列&#xff08;小根堆&#xff09;。 */ typedef s…

数字人解决方案——音频驱动机器人

音频集成 机器人 标志着 人工智能&#xff08;AI&#xff09;。 想象一下&#xff0c;机器人可以通过视觉和听觉导航并与周围环境互动。音频驱动的机器人使这成为可能&#xff0c;提高了它们更高效、更直观地执行任务的能力。这一发展可能会影响到各个领域&#xff0c;包括家庭…