【JavaEE初阶】HTTP协议|HTTP请求|URL基本格式|URLencode

news2024/11/17 13:35:38
💡推荐

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】


HTTP请求(Request)

认识URL

URL基本格式

平时我们俗称的"⽹址"其实就是说的URL(Uniform Resource Locator统⼀资源定位符)

互联⽹上的每个⽂件都有⼀个唯⼀的URL,它包含的信息指出⽂件的位置以及浏览器应该怎么处理
⼀个具体的URL:(可以看到,在这个URL中有些信息被省略了)

1 https://v.bitedu.vip/personInf/student?userId=10000&classId=100

(1)协议名称:https :

协议⽅案名.常⻅的有http和https,也有其他的类型.(例如访问mysql时⽤的jdbc:mysql )

(2)身份认证信息:user:pass 

登陆信息,现在已经废弃了

(3)IP地址/域名:v.bitedu.vip

服务器地址.此处是⼀个"域名",域名会通过DNS系统解析成⼀个具体的IP地址.(通过ping命令可以看到, v.bitedu.vip 的真实IP地址为 118.24.113.28 )

(4)端口号:(可省略)

上⾯的URL中端⼝号被省略了.当端⼝号省略的时候,浏览器会根据协议类型⾃动决定使⽤哪个端⼝.例如http协议默认使⽤80端⼝,https协议默认使⽤443端⼝,

(5)路径:(path)/personInf/student :带层次的⽂件路径.

描述了这个机器的这个程序,上面管理的哪个程序

(6)查询字符串:(query string):userId=10000&classId=100

本质是⼀个键值对结构,键值对之间使⽤&分隔,键和值之间使⽤=分隔.

此处键有啥,值有啥都是根据程序员自己定义

(7)片段标识符 :#

表示一个网页中的某个部分

此URL中省略了⽚段标识.⽚段标识主要⽤于⻚⾯内跳转.(例Vue官⽅文档:https://cn.vuejs.org/v2/guide/#%E8%B5%B7%E6%AD%A5,通过不同的⽚段标识跳转到⽂档的不同章节)

扩展:使⽤ping命令查看域名对应的IP地址.

1. 在开始菜单中输⼊ cmd ,打开 命令提⽰符 

2. 在cmd中输⼊ ping v.bitedu.vip ,即可看到域名解析的结果.

PS:有的电脑上ping命令会报错 ping 不是内部或外部命令,也不是可运⾏的程序或批处理⽂件 。这种情况是因为有的Windows10默认没有启⽤ping命令.

百度搜索windows10 启⽤ ping 即可

 URL中的可省略部分

• 协议名:可以省略,省略后默认为http://

• ip地址/域名:在HTML中可以省略(⽐如img,link,script,a标签的src或者href属性).省略后表⽰服务器的ip/域名与当前HTML所属的ip/域名⼀致.

• 端⼝号:可以省略.省略后如果是http协议,端⼝号⾃动设为80;如果是https协议,端⼝号⾃动设为443.

• 带层次的⽂件路径:可以省略.省略后相当于/.有些服务器会在发现/路径的时候⾃动访问/index.html

• 查询字符串:可以省略

• ⽚段标识:可以省略


关于URLencode

像/ ? : 等这样的字符,已经被url当做特殊意义理解了.因此这些字符不能随意出现.⽐如,query string里value部分,一旦也包含这些符号,就会使url的解析出现问题,那么构造http请求就必须先对特殊字符进⾏转义urlencode.

⼀个中⽂字符由UTF-8/GBK这样的编码⽅式构成,虽然在URL中没有特殊含义,但是仍然需要进⾏转义.否则浏览器可能把UTF-8/GBK编码中的某个字节当做URL中的特殊符号.

转义的规则如下:

将需要转码的字符转为16进制,然后从右到左,取4位(不⾜4位直接处理),每2位做⼀位,前⾯加上%,编码成%XY格式

例如:

 "+"被转义成了"%2B"(“+”的acsii就是“2B”)

有些时候,浏览器为了让用户看起来方便,显示的是转码之前的字符,而实际上发送的是转码之后的

例子:

浏览器显示:

但是复制URL下来却是:

urldecode就是urlencode的逆过程

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

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

相关文章

Linux内核重置root密码

Ubuntu 首先重新启动Ubuntu系统,然后快速按下shift键,以调出grub启动菜单在这里我们选择第二个(Ubuntu高级选项),选中后按下Enter键 选择最高的Linux内核版本所对应的recovery mode模式,按e键编辑启动项 在…

【JavaEE初阶】网络初识|局域网和广域网|交换机和路由器|IP地址|端口号

💡推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击跳转到网站】 关键概念 1.局域网LAN和广域网WAN (1)局域⽹,即Local Area Network&#xff0…

云界洞见——基于移动云云数据库MySQL应用实践

目录 简介1 新手入门1.1 创建MySQL实例1.2 公网连接MySQL实例 2 操作指南2.1 创建数据库2.2 数据备份设置2.3 日志管理2.4 监控告警2.5 代码审计 3 应用场景4 总结 如今,大型企业如金融企业和银行等,在下一代的微服务架构转型要求下,需要基础…

C++的数论相关算法

数论是数学的一个分支,主要研究整数的性质和关系。在计算机科学中,数论算法对于密码学、优化问题和算法分析等方面都具有重要作用。C作为一种高效的编程语言,非常适合用来实现这些算法。下面我们将介绍几个C中的数论相关算法,包括…

linux入门到精通-第十九章-libevent(开源高性能事件通知库)

目录 参考什么是libevent应用核心实现libevent的地基event_base等待事件产生,循环监听event_loop退出循环监听event_base_loopexit创建事件工作流程 安装一(源码安装,推荐)现在源码配置编译安装验证安装 安装二(可能因…

【记忆空间】 史上最详细,移动固态硬盘,西数BLACK D30拆解,测评,外观与内饰解析。第一期:外观与内饰。

【记忆空间】 史上最详细,移动固态硬盘,西数BLACK D30拆解,测评,外观与内饰解析。第一期:外观与内饰。 外观实拍,正面,整体黑色,外壳是一个塑料的材质。 外观实拍:侧面…

Android Studio开发之路(十四)自定义Titlebar以及设置顶部状态栏颜色

一、描述 项目需求,我要做一个下图这样的titlebar,包括一个返回按钮,一个关闭按钮,一个文本框。默认的titlebar按钮设计不太满足我的需求,于是我打算自定义一个titlebar组件,应用到我的每一个页面 二、titlebar组件设…

新计划,不断变更!做自己,接受不美好!猪肝移植——早读(逆天打工人爬取热门微信文章解读)

时间不等人 引言Python 代码第一篇 做自己,没有很好也没关系第二篇结尾 引言 新计划: 早上一次性发几个视频不现实 所以更改一下 待后面有比较稳定的框架再优化 每天早上更新 早到8点 晚到10点 你刚刚好上班或者上课 然后偷瞄的看两眼 学习一下 补充知…

HCIP-Datacom-ARST自选题库__BGP判断【20道题】

1.传统的BGP-4只能管理IPV4单播路由信息,MP-BGP为了提供对多种网络层协议的支持,对BGP-4进行了扩展。其中MP-BGP对IPv6单播网络的支持特性称为BGP4,BGP4通过Next Hop属性携带路由下一跳地址信息。 2.BGP4通过Update报文中的Next Hop属性携带…

C++之运算符重载

在C中,运算符重载是一种特殊的函数,它允许程序员重新定义或重载大部分内置运算符,以便它们可以用于用户自定义的数据类型。通过运算符重载,可以使自定义类型的使用更加直观和自然。 不是所有运算符都可以被重载: .&a…

聊聊变异测试

软件质量保障 所寫即所思|一个阿里质量人对测试的所感所悟。 1. 介绍 有句话说:证实容易,证伪难。正如测试一样,证明缺陷存在容易,但证明不存在缺陷难。而变异测试颠覆了这一原则,如果我们知道存在缺陷&am…

ARM+FPGA+NVIDIA AI摄像头软硬件定制

拥有资深ISP图像技术团队,是英伟达、地平线等合作伙伴,我们的团队掌握目前市面上大部分车载平台的ISP图像画质服务能力,能自主开发图像ISP和增强算法。我们具有多名经验丰富光学设计专家,掌握车载模组光学设计能力,资深…

数据结构——链表——模板类实现双向链表——先完成再完美——持续更

链表:概念,实现,《数据结构》这里实现是基于模板的 C语言基础,指针,引用。模板。《CPrimer》有些进阶用法放在语言学习的目录 LeetCode应用,会更新在LeetCode150,目前这个系列先暂停&#xff0c…

遇见问题-VMware虚拟机打开运行一段时间后卡死

1.问题原因 因为Windows自带的虚拟化软件Hyper-V与VMware存在冲突。 2.关闭Hyper-V 1.打开【控制面板】-【程序和功能】-【启用或关闭Windows功能】3.关闭HV主机服务 1.右击计算机-》管理-》服务和应用名称-》服务-》找到HV主机服务-》右击属性停止服务 -》启动类型设置为禁…

NASA数据集——阿尔法喷气式大气实验二氧化碳和甲烷数据

Alpha Jet Atmospheric eXperiment Carbon Dioxide and Methane Data 阿尔法喷气式大气实验二氧化碳和甲烷数据 简介 Alpha Jet Atmospheric eXperiment (AJAX) 是美国国家航空航天局艾姆斯研究中心与 H211, L.L.C. 公司的合作项目,旨在促进对加利福尼亚、内华达…

asp.net core接入prometheus2-自定义指标

前提 了解一下asp.net core接入prometheus快速入门 https://blog.csdn.net/qq_36437991/article/details/139064138 新建.net 8空web项目 安装下面三个包 <PackageReference Include"OpenTelemetry.Exporter.Prometheus.AspNetCore" Version"1.8.0-rc.1&…

【软件设计师】计算机组成原理

1、数据的表示 1.1 进制转换 整型有4种进制形式&#xff1a; 1.十进制&#xff08;D&#xff09;&#xff1a; 都是以0-9这九个数字组成&#xff0c;不能以0开头。 2.二进制&#xff08;B&#xff09;&#xff1a; 由0和1两个数字组成。 3.八进制&#xff08;O&#xff09;&am…

Java的类路径究竟是什么?

回答 问了chatgpt这个问题&#xff0c;首先类路径的定义是&#xff1a; 是指一组路径&#xff0c;这些路径告诉Java虚拟机&#xff08;JVM&#xff09;和类加载器在哪里可以找到应用程序所需的类和资源文件。说白了就是在运行java程序的时候需要先将java源代码编译成class文件…

代码随想录——从前序与中序遍历序列构造二叉树(Leetcode105)

题目链接 递归 /*** Definition for a binary tree node.* public class TreeNode {* int val;* TreeNode left;* TreeNode right;* TreeNode() {}* TreeNode(int val) { this.val val; }* TreeNode(int val, TreeNode left, TreeNode right) {* …

nginx + confd + etcd 实现nginx动态白名单,防止请求host篡改注入攻击

众所周知&#xff0c;浏览器发送到后台请求header中携带的host是可能被修改的&#xff0c;为了防止这件事情发生&#xff0c;就很有必要给后台设置host请求白名单了&#xff0c;本次将介绍nginx如何配置&#xff0c;以及结合confd和etcd实现动态配置。 1. http/https请求的host…