HTTP初识

HTTP初识

HTTP

HTTP是处于**++网络应用层的超文本++**传输协议

超文本?那跟普通的文本有什么区别呢

  • 文本:字符串
  • 超文本:HTTP不仅只限于文本传输,还能传输图片、视频、音频、字体,且以二进制的形式来传输

另外,HTTP在传输层中主要依赖TCP的协议 ,但HTTP 3.0 版本开始就以UDP协议传输------主要是为了传输效率考虑

那HTTP一般能应用在什么场景呢?

  1. web开发中:负责网页前端与后端的通信

  2. 移动端APP:负责建立与服务器后端的通信

  3. 分布式系统的服务器之间的调用,这种应用近年来逐渐多了起来

    在以前的服务器之间的调用一般都是基于 TCP 或者 UDP + 自定义协议的方式来实现(如protobuf),这是Fiddler中抓包的其中一个网卡内容

    随着时代变迁,Java版本的微服务兴起,研究出了一套SpringCloud框架应用于服务器之间的调用就直接使用HTTP,实现与SpringMVC的无缝对接,HTTPS也是基于HTTP,引入了"加密层"实现的


了解完了HTTP的历史,那就继续了解HTTP的性质

HTTP是典型的"一问一答"模型,即客户端发出一个请求,服务器就返回一个响应。但其实客户端与服务器之间的交互方式不仅仅只有这一种形式,还有一问多答、多问一答,多问多答的交互模型,以下是它们在应用之间的区别

  • 一问一答:HTTP
  • 一问多答:下载一个大的文件、流式传输
  • 多问多答:远程桌面(toDesk)

另外,HTTP也是不断发展的,比如现在的大模型,大多数都是采用流式传输的形式反馈,流式传输就是基于HTTP实现的"一问多答"的模式

既然HTTP是在应用层实现的传输协议,那也会有对应的报文格式,以客户端的角度来说有HTTP请求,服务器则有HTTP响应

  • HTTP请求

  • HTTP响应

从图中就能清楚的了解HTTP的请求和响应的框架,其他的都很容易理解,那HTTP请求中的URL是什么来的?既然叫唯一资源定位符,那定位了什么?接着看下去

URL

唯一资源定位符,用来标识网络上的一个资源的位置,其实URL不止在网络上,它是个通用的概念,很多协议都会用到URL,例如在JDBC中也能见到

那URL的格式一般都是怎么样的呢?我在华为的技术知识网页找到了关于URL格式的介绍以及参数解释


看到解释图我们会有一个疑问------ ?query 又是何方神圣

?query string

它是查询字符串,也是键值对结构的数据,其中 & 来分割键值对,= 分割键和值

例如上述的?name=tom&age=20​就分为了两个键值对分别是name=tom​和age=20

HTTP中会有很多的键值对,其中就包含query string和header里的键值对,那他们两有什么区分?

  • query string 的键值对,是程序员自定义,在开发的时候通过前后端的程序员对接,就能确定某些query string的定义
  • header的键值对是HTTP协议里就定义好的

urlencode

对于query string来说,有时候是需要进行encode转码,因为URL中包含了许多特殊的符号,都是有特定的含义

query string作为URL的一份子,如果在程序员定义的时候也包含了这些特殊符号,可能就会导致浏览器解析失败,无法正确地跳转

所以只要是包含了标点符号或者中英文字符,都要转义

其中中文字符的转义又需要特定封装以下------由于中文字符包含了多个字节,以utf8来讲,如果转义后的字节恰好和某个特殊符号的ascii码值一样就不好了

所以要把转义的内容的每个字节拿出来,使用十六进制标识,同时每个字节都要加上%

除此之外,我们还没有讲到HTTP的方法,接着看下去

方法-Method

在HTTP中,方法是请求中的一部分,表达要"做一个什么动作"

其中GET、POST是最常见的,其次就是PUT和DELETE,通过Fidder抓包HTTP请求也能看出大多数都是GET和POST方法

这次的HTTP初始就暂时讲到这里 后续会更进一步地拓展

希望对看到这里的你有所帮助,祝愿身体健康~(∠・ω< )⌒★

相关推荐
云和数据.ChenGuang4 分钟前
光哥说Python RAG 系统需要哪些评估指标:从检索到生成的全链路评测指南
网络·人工智能·python·算法·langchain
ESDWAN37 分钟前
企业网络监控应该监测哪些目标?网关、网络节点还是业务系统?
服务器·网络·php
mennekes1 小时前
临时用电线路标识:插头颜色、钟面标识配套规范
运维·网络·科技·安全·制造
发光小北2 小时前
EtherNet/IP 转 ModbusTCP 网关现场应用中会遇到什么问题?
服务器·网络·tcp/ip
海宇大数据2 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化持牌网络小贷小微商户极速助业贷秒级全维风险决策网关
网络·人工智能·架构·自动化
tongyiixiaohuang3 小时前
供应商主数据同步实战:从易快报到金蝶云星空的单一策略落地
java·网络·数据库
一只鹿鹿鹿4 小时前
智算算力、AI-芯片与产品解析(PPT文件)
大数据·运维·网络·人工智能·物联网·1024程序员节
开源必胜4 小时前
Socket、异步非阻塞 I/O 与 NGINX、Netty 模型
网络·tcp/ip·nginx
沫璃染墨4 小时前
从零入门计算机网络系列(十一):HTTP协议进阶——从重定向原理到GET/POST与Fiddler抓包
linux·服务器·开发语言·网络·c++·tcp/ip·html
蓝祁子yoky5 小时前
Qt学习日记 Day13:网络编程(一)-TCP基础与Socket实战
网络·qt·学习