Java网络编程——HTTP协议原理

news2025/2/24 8:03:40

协议

我们在网上冲浪时,会在浏览器地址栏输入一个网址,然后就能打开网页了。比如,输入

https://www.douban.com/

就可以访问到豆瓣的主页:

豆瓣网站

那么大家是否好奇:https 是什么意思,作用又是什么呢?

什么是协议

协议,网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

HTTP/HTTPS 协议

目前网站主要有两种协议,HTTP 和 HTTPS,具体的原理我们可以不用深究,我们只需要知道他们的区别:

img

如果大家对两种协议感兴趣,可以查看这个文档

URL

上面讲到了豆瓣首页地址:[https://www.douban.com/](javascript:void(0)) 的开头表示使用了 HTTPS 协议。那么为什么把协议放在地址的开头呢?

我们来看一个豆瓣的内容页面:

豆瓣网站

这个页面的地址就比较复杂了。地址栏输入的地址,叫作 URL,也就是我们常说的网址,这个页面的 URL 就是:

https://www.douban.com/gallery/topic/116390/?from=hot_topic_note&sort=new

URL 是缩写,其英文全称是:Uniform Resource Locator(统一资源定位符)。URL 的格式规范规定了由哪几部分组成,以及各种符号的作用:

URL格式

格式说明:

  • 协议类型与域名之间以 ://(固定写法)分隔。

  • 路径(英文常称为 path )以单斜杠 / 开头,中间每层的分隔符也是单斜杠 /

    路径相当于一层一层的文件夹。但要注意与windows 的文件夹分隔符 \ 不要混淆了。

  • 参数:

    • 路径与参数之间用 ? 分隔。看到问号 ? 就知道后面的内容就是参数了。
    • 多个参数之间用 & 分隔。
    • 参数用“参数名=参数值”(key=value)的格式表示。

这些规则看起来有点多,但不需要刻意背,上网的时候多注意观察浏览器地址栏中的 URL 就能理解。

URL 的格式,就像逛校园:

先根据街道门牌号(域名)找到校园,跟门卫出示了学生证(协议),顺着 路/大楼/层/教室号(路径)走到了教室,告诉老师你的姓名(参数),老师就可以给你传授知识啦(打开网页)。

扩展知识点

端口号

可能会看到这样的URL:

[https://www.douban.com:443/gallery/topic/116390/?from=hot_topic_note&sort=new](javascript:void(0))

域名后的 :443 表示网站的端口号。HTTP 协议默认的端口号是 80HTTPS 协议默认的端口号是 443 。默认的端口号在 URL 中是可以省略的,其它的端口号就必须要写明了。

上网浏览时,大多数情况下看不到端口号,但是大家在开发过程中可能经常会用到不同的端口号,以 80008080 最常见,这些端口号必须写明。

路径的两种情况

1.相对路径

大家在开发过程中,可能会看到这样格式的 URL

[gallery/topic/116390/?from=hot_topic_note&sort=new](javascript:void(0))

就要非常小心了。不是以斜杠 / 开头的路径,表示相对路径,但是具体相对于什么就很复杂了,要看具体情况,所以使用这种相对路径非常容易出错。

建议大家书写 URL 时一定要写以斜杠 / 开头的绝对路径;收到别人给的不是以斜杠 / 开头的路径时,也要确认清楚。

2.默认路径

我们在上网时,仅输入了 [https://www.douban.com](javascript:void(0)) 或 [https://www.douban.com/](javascript:void(0)) 都能打开豆瓣首页,并没有输入路径啊。

实际上,没有输入路径时,表示请求网站的默认页面,那么服务器就会返回一个默认页面给浏览器。至于具体默认页面是什么页面,是由服务器决定的,通常服务器默认的页面是首页。

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

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

相关文章

语言模型简介和Ngram模型(1)

语言模型介绍一 语言模型语言模型概念语言模型应用-语音识别声纹特征提取语言模型挑选成句 语言模型应用-手写识别语言模型应用-输入法语言模型分类语言模型评价指标-困惑度PPL N-gram语言模型马尔科夫假设平滑问题平滑问题解决一平滑问题解决二 插值优化语言模型应用-文本纠错…

unity 创建项目报错feature has expired (H0041),sentinel key not found (H0007)

两个报错同一种处理方式。 1、删除以下路径所有文件:C:\ProgramData\SafeNet Sentinel(注意:ProgramData为隐藏文件) 2、打开Cmd(WinR键,输入cmd回车),进入Unity安装所在盘符&#…

SecureCRT记录会话日志

在使用SecureCRT软件的时候,有个非常实用的功能:记录会话日志,就是可以把当前会话的所有记录保存成文本文件。下面简单介绍一下如何使用这个功能。 首先点击SecureCRT软件左上角的文件 然后点击会话日志即可 然后选择一个路径保存日志&#…

物流仓库安全视频智能管理方案:构建全方位、高效能的防护体系

一、背景分析 随着物流行业的快速发展和仓储需求的日益增长,仓库安全成为企业运营中不可忽视的重要环节。传统的人工监控方式不仅效率低下,且难以做到全天候、无死角覆盖,给仓库资产和人员安全带来潜在风险。因此,引入仓库安全视…

Datawhale AI夏令营第四期 魔搭-AIGC方向 task01笔记

目录 赛题内容 可图Kolors-LoRA风格故事挑战赛 baseline要点讲解(请配合Datawhale速通教程食用) Step1 设置算例及比赛账号的报名和授权 Step2 进行赛事报名并创建PAI实例 Step3 执行baseline Step4 进行赛题提交 微调结果上传魔搭 lora 调参参数介绍及 SD 的基础知识点…

ST-LINK烧录MCU

打开ST-LINK软件: 主板断电状态下接入烧录器,烧录器USB连接电脑: 主板上电,点击连接按钮: 点击加载文件: 点击写入按钮,烧录成功后拔掉烧录器,主板重新上电

CPU 流水线技术初识

在当今数字化的时代,计算机已经成为我们生活中不可或缺的一部分。而在计算机的核心部位,中央处理器(CPU)则是其重要的组成部分。CPU 的性能决定了计算机的运行速度和处理能力,而流水线技术则是 CPU 性能提升的关键所在…

SCAU华南农业大学 高级程序语言设计(C语言)OJ实验题解

有错漏/建议/意见 欢迎在评论区提出!!! 实验1 C语言程序初步 堂前习题 6567 第一个C程序 描述: 将下列程序输入Visual C,编译、连接和运行该程序,运行通过后,提交程序。 输入: …

不同环境下RabbitMQ的安装-3 操作RabbitMQ

前面两篇从不同环境下RabbitMQ的安装-1 为什么要使用消息服务 到同环境下RabbitMQ的安装-2 ARM架构、X86架构、Window系统环境下安装RabbitMQ介绍了关于如何在ARM架构、X86架构和Window系统下如何安装,各位小伙伴可以根据自己的实际开发场景参考安装。 到本篇是一些…

宿主机与容器(docker)之间的数据共享

目录 一台宿主机上的容器和宿主机之间的数据共享 创建卷 进入Docker的卷的存储位置 进入卷ep1的数据存储位置 创建容器并挂载至卷ep1上 测试: 进入容器内部查看 一台宿主机上的多个容器之间的数据共享 挂载新的docker容器在该卷上 查看修改的数据是否一致…

CocosCreator使用 ProtoBuf WebSocket与服务器对接方法

在 Cocos Creator 中使用 .proto 文件和转换成 TypeScript(TS)两者各有其优缺点,具体选择取决于你的项目需求和团队的开发习惯。以下是两者的一些比较: 1、使用 .proto 文件的优点: 跨语言支持:Protocol B…

对目录的操作

1.fileno:获得文件流指针里的文件描述符 int fd fileno(FILE *fp) 成功返回文件描述符 失败返回-1 2.fdopen:与fileno相反,将文件描述符转换为文件流指针 FILE *fp fdopen(int fd) 成功返回文件流指针 失败返回-1 一、目录&#x…

药物研发企业专属项目管理系统案例(PMS)分享:丽珠医药集团上线瑞杰 SuperProject 系统

丽珠医药集团股份有限公司与北京瑞杰科技达成合作,丽珠医药集团选择瑞杰科技自主研发的 SuperProject 系统来打造一套专业的医药研发项目管理平台,帮助丽珠医药更好地规划、执行和监控药物研发项目,确保项目按时、按质、按量完成,…

数学规划模型|线性规划|整数规划

规划模型的概念 如何来分配有限资源,从而达到人们期望目标的优化分配数学模型,它在数学建模中处于中心地位。 这类问题一般可以归结为数学规划模型,规划模型的应用极为广泛,其作用已为越来越多的人所重视 规划模型是数学建模竞赛…

翰德恩赋能中国邮政信息科技产品创新系列培训

为了增强中邮信科公司需求分析工程师的专业素养,提升其业务需求和业务价值的挖掘能力,进而设计并交付满足用户期望的产品,提升用户体验,运营管理部于2024年4月至6月成功举办了六期需求分析工程师能力提升系列培训。 本次系列培训…

Maven依赖管理【后端 2】

Maven依赖管理详解 在Java项目开发中,依赖管理是一个至关重要的环节。Maven作为Java世界中最流行的项目管理工具之一,通过其强大的依赖管理机制,极大地简化了项目构建和依赖管理的复杂性。本文将详细介绍Maven的依赖配置、依赖传递以及依赖范…

QT生成.exe文件无法在未安装QT的电脑上运行的解决办法

在没有安装qt的电脑上运行qt生成的exe文件,提示: The application failed to start because no Qt platform plugin could be initialized 在网上找了很多办法,我尝试了 手动: 1、修改环境变量,2,添加pla…

Hadoop未授权访问漏洞

Hadoop是一个由Apache基金会所开发的分布式系统基础架构,由于服务器直接在开放了Hadoop 机器 HDFS 的 50070 web 端口及部分默认服务端口,黑客可以通过命令行操作多个目录下的数据,如进行删除,下载,目录浏览甚至命令执…

【密码学】网络攻击类型:窃听攻击、假冒攻击、欺骗攻击和重放攻击

一、窃听攻击、假冒攻击、欺骗攻击和重放攻击的定义 这些攻击从名字中就大概能知道他们的攻击原理,我就不赘述了,直接用一个表格来一次性介绍四种攻击方式。 攻击类型攻击原理窃听攻击攻击者监听网络中的数据传输以获取敏感信息。示例:在未加…

docker 部署 mysql8

命令 docker run --restartalways --name mysql8 -v /data/mysql/conf:/etc/mysql -v /data/mysql/data:/var/lib/mysql -v /data/mysql/log:/var/log -v /data/mysql/mysql-files:/var/lib/mysql-files -p 3308:3306 -e MYSQL_ROOT_PASSWORD123456 -d mysql:8 \解释 --rest…