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

完整教程:38.应用层协议HTTP(一)

完整教程:38.应用层协议HTTP(一)

HTTP协议概念和理解

HTTP(HyperText Transfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本(如HTML文档)(应用层协议)
URL(Uniform Resource Locator,统一资源定位符)是互联网上用于标识和定位资源的标准化地址格式。
URL构成实例:
https://news.qq.com/rain/a/20250418A05TE500
  • https(协议名称)
    成熟的协议,端口号是固定的!
    https:443
    http:80
    ssh:22
    news.qq.com(域名)
  • 域名 -> IP地址 ->直接用IP为什么不好?IP不利用人的阅读,人看不出含义
    域名有对应的域名服务器进行解析(存放域名键值对的服务器,属于基础设施),域名转化成IP的过程称为DNS(Domain Name System,域名环境是互联网的核心服务之一,用于将人类可读的域名转换为计算机可识别的IP地址,实现网络访问的“地址翻译”)
  • /rain/a/20250418A05TE500(资源路径)
    你访问的资源路径 -> linux路径分隔符
HTTP协议,本质也是Socket通信->必须知道服务器IP(域名)+ 端口号(成熟协议端口号固定)
HTTP协议本质理解:
人上网的行为就两种:
1)从远端拿资料(HTTP)
2)把自己本地的资料上传给远端
HTTP -> 传送文件的 -> 短视频,视频,网页,图片,音频 -> 在没有获取资源的时候,资源存在哪里?服务器内部 ->以什么形式存在?一个文件
HTTP角度:“资源”即文件,文件在Linux特定路径下。
http[s]:port
域名:IP地址,具有唯一性
资源路径:目标机器上唯一一个文件
http[s]:port:定位到全网唯一主机的唯一文件(超文本传输协议)

url特殊字符处理

浏览器),会自动给我们进行对特殊字符进行编码encode,浏览器urlencode,服务器urldecode。就是请求的时候,url中如果有特殊字符,客户端(一般

HTTP-request结构理解

HTTP协议:结构化的,协议是通信双方约定的结构体。

不是所有的HTTP请求,都会携带内容。

三个问题:

1.http如何做到报头和有效载荷的分离?以空行为分隔符

2.http协议如何理解?特殊字符串来划分区域

3.http协议,序列化与反序列化,在哪里表现?

HTTP协议,序列化与反序列化用的是特殊字符进行子串拼接,且不依赖任何第三方库。

request结构分析

Request请求行:请求方法 URI HTTP版本

  • 请求方法类型:最常见的GET(从远端服务器获取数据),POST(向远端服务器发送数据)
  • URI:统一资源标识符(Uniform Resource Identifier),用于表示资源所在的路径。
    其中 / 代表请求的是首页
  • 通过HTTP版本:用于服务器进行判断版本(服务器根据客户端的HTTP版本请求能够提供相应版本的服务)

Response状态行:HTTP版本 状态码 状态码描述

URI理解

怎么表示自己要请求什么资源?URI表示就是请求

网页内容必须在服务器指定路径下的文档(图片,视频... css,js....)

URI内容 / 不是Linux根目录,而是web根目录-> 资源都放在web(http)根目录下 ->请求我们代码中的 ./wwwroot 目录下的特定路径下的资源。就是http请求的本质,其实就我们要请求的资源的路径。就是而URL中的路径,就

URI路径转化成物理路径:

  • 首页:./webroot + /index.html就是/ ,访问的
  • 其他页面:./webroot + /a/b/c.html就是/a/b/c.html ,访问的

报文完整性判断方法

tcp协议是面向字节流的,读取后,需要对报文的完整性进行判断,方法:

1)读到完整的请求报头(空行分割)

2)对报头进行反序列化,提取一个属性:Content-Length(有效载荷长度)

3)从剩余字符串中,提取Content-Length个字符。

首页结构理解

a标签是存放资源路径或者url的。点击链接,浏览器会向服务器发起http请求。

我们在浏览器端请求的时候,首页作为站点的入口,一个网站就是一颗多叉树

通过http request的 URI 表示的。就是点击链接的时候,浏览器会形成新的访问地址,发送二次请求 -> 我们请求的资源,都

code理解

HTTP Response会经过特定状态码来标识对应的情况。

http://www.hskmm.com/?act=detail&tid=17649

相关文章:

  • 在Vue.js中设置方法时访问$vuetify实例
  • 纷享销客CRM任务系统:破解快消品终端动销管理难题
  • 第一周博客作业-介绍自己
  • AI大模型应用简介 - 努力-
  • React 基础核心概念(8 个)——从入门到能写业务组件(上)| 葡萄城技术团队
  • 2 day - when
  • 罗氏线圈选型技术指南:精准电流测量的关键抉择​​
  • 普科PK-CWT/150罗氏线圈在工业电机驱动保护中的应用方案
  • 完整教程:PNP机器人九月具身智能引领FRANKA机器人具身智能技术创新与人形机器人产业全球化新格局,全球具身领先生态推动模型部署和泛化
  • 深入解析:婚恋交友软件:机遇与挑战的深度细分拆解
  • 301、陇西行
  • 基于Python+Vue开发的鲜牛奶订购管理系统源码+运行步骤
  • VS运行netcore api提示localhost证书不安全
  • Java 日志管理的黄金组合: SLF4J+Logback
  • 为什么人工智能选择Python?深入解析AI界的胶水语言
  • 1 day(20250925) - when
  • 12分钟讲解Python核心理念
  • 【重要】什么是 PEP 8 规范
  • 实用指南:华为坤灵:点燃中小企业智能化的星火
  • 阻止HTML input元素(type=number)中输入字母e的方法
  • 深入解析:KRaft 运维从静态到动态 Controller
  • Windows时间同步列表注册表授时时间服务器
  • epub如何让标题在竖直方向居中
  • PHP应用while循环按照ID顺序列出数据集
  • Apple Books 对 epub 支持的限定(未完待续)
  • win10开机输入密码后一直转圈,很长时间才登录到桌面
  • Windows11 右键菜单管理
  • Mac 安装PDF2zh
  • 实验1
  • HBM之父:HBM的终点是HBF