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

网络--应用层协议--HTTP

1、HTTP协议特性

1、HTTP协议(超文本传输协议):定义了客户端(如浏览器)与服务器之间的通信方式,以交换或传输超文本(超文本:视频、音频、文字等)

2、HTTP协议是客户端与服务器通信基础:客户端通过HTTP协议向服务器发送请求,服务器处理后返回响应。

3、HTTP协议是无连接、无状态的协议(每次请求,都要建立新的连接,不会保持旧连接-即无连接) ---> 因为HTTP底层协议是TCP,而TCP是要建立连接的,所以HTTP也是要建立连接的。

2、URL - Uniform Resource Locator(统一资源定位地址)

2.1、什么是URL

平时我们口中所说的网址,就是URL

http://user:pass@www.example.jp:80/dir/index.html?uid=1#ch1

 其中:

http:协议方案名(如https)

user:pass:登陆信息(认证)

www.example.jp:服务器地址(DNS技术,会自动将域名转换成IP地址)

80:服务器端口号

/dir/index.html:带层次的文件路径(一般index.html指该网页的首页)

uid=1:查询字符串参数

ch1=片段标识符

其中像/ ? # 这样的字符,已经被url当作特殊字符理解了(需要转义)

 为什么我们平时所见的网址没有这么详细呢?比如百度的首页网址:

https://www.baidu.con/index.html

 1、登陆信息(认证):不一定需要认证,并且登陆信息被浏览器记录即可。

2、为什么没有端口号呢:知名协议的端口号是强关联的,对于HTTP协议,服务器一旦启动,就是绑定80端口。所以可以忽略端口号。

3、第一个/:不一定是根目录,而是web根目录(即当前网页资源的根目录,不是系统根目录)。

4、后面的字符参数,不是每个页面都有,在特定需要输入信息(参数)的页面,才会出现。

2.2、再谈资源--URL中的资源路径

在HTTP这里,资源,统一可以认为是超文本资源。

在没有获取到资源前,这些资源都在服务器端。

我们通过HTTP协议,发起请求,服务器将资源放入响应中返回,我们便获取到资源。

而大部分服务器的底层都是Linux系统 -- Linux下,一切皆文件。

因此,获取资源,就是打开某个文件,获取文件数据。

想要打开文件,就得找到文件:

URL中:服务器地址(域名) +  默认端口 -> 确定唯一主机上的唯一进程。

带层次的资源路径:确定该主机上的唯一文件。

2.3、特殊字符转义--urlencode/urldecode

像/ ? 这样的特殊字符,已经被url当作特殊意义理解了,因此不能随意出现。

想要在参数中带有这些字符,就必须进行转义。

转义的规则如下:

将需要转义的字符转为16进制

从右到左,取4位(不足四位直接处理)

每2位做1位,前面加上%,编码成%XY的格式

例如:


http://www.kler.cn/a/386552.html

相关文章:

  • 初始JavaEE篇 —— 文件操作与IO
  • SpringBoot单体服务无感更新启动,动态检测端口号并动态更新
  • Java中的面向对象编程基础——定义类、对象、方法和属性
  • 新的服务器Centos7.6 安卓基础的环境配置(新服务器可直接粘贴使用配置)
  • JS之正则表达式
  • 应用系统开发(1)涡流检测设备以及关键技术要点
  • Go语言死锁和阻塞
  • 一种EF(EntityFramework) MySQL修改表名去掉dbo前缀的方法
  • 从0开始搭建一个生产级SpringBoot2.0.X项目(十)SpringBoot 集成RabbitMQ
  • Vue Element-UI 选择隐藏表格中的局部字段信息
  • 智慧交通系统:构建高效安全的城市交通网络
  • 2024 CSS保姆级教程四
  • 深度学习:自注意力机制(Self-attention)详解
  • 工作流初始错误 泛微提交流程提示_泛微协同办公平台E-cology8.0版本后台维护手册(11)–系统参数设置
  • 三菱QD77MS定位模块速度限制功能
  • yolov11-cpp-opencv-dnn推理onnx模型
  • LLM - 使用 LLaMA-Factory 微调大模型 环境配置与训练推理 教程 (1)
  • java多线程sleep() 和 wait() 有什么区别?
  • Shiro权限刷新
  • 「C/C++」C/C++标准库 之 #include<cstdlib> 通用工具函数库
  • hive表批量造数据
  • 08、Java学习-面向对象中级:
  • MySQL约束管理
  • 微服务day04
  • 技术速递|.NET 9 中 System.Text.Json 的新增功能
  • Linux命令 - linux索引节点、硬链接、软链接的介绍与使用