Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4Mobile wallpaper 5Mobile wallpaper 6
977 字
5 分钟
HTTP/HTTPS基础内容

Http#

Http即超文本传输协议,该协议容易和TCP/IP协议产生混淆,http协议是应用层协议,而TCP/IP 协议是传输层协议,http协议是基于tcp/ip协议工作
http包括的版本有:

  • HTTP1.0
  • HTTP1.1
  • HTTP2.0
  • HTTP3.0
TIP

除了HTTP3.0是基于UDP协议实现,其他都基于TCP协议实现,1.0和3.0是现在的主流

http特性#

首先我们应该知道他最最基础的特点:明文传输,对其内容不进行任何操作。

设计之初,核心需求是高效、简洁为目的,并没有考虑安全问题

在客户端(请求的发送方)和服务器(请求的接收方)之间的传输特点有以下几种:

  • 一收一发
  • 多发一收
  • 一发多收
  • 多发多收

一收一发是基本特点,其他操作是基于网络编程中的设计

http报文#

http中request报文和response报文结构基本相同

request请求报文#

由以下几个部分构成:

IMPORTANT
  • 请求行(Request Line): 包含http版本、请求方式、请求地址等基本信息
  • 请求头(Request Header): 请求的详细报文说明,key-value格式存储
  • 空行
  • 请求数据: 这里就是传输的数据,以二进制传输,可以传输空字符串、视频、图片等

URL-资源定位符#

我们上网搜索到的所有资源都是有唯一的URL,它指出了文件位于哪个位置以及怎么处理。 所以URL也就我们平常说的网址、地址。

URL基本格式#

它的基本格式如下:
协议类型:[//服务器地址[:端口号]][/资源层级 UNIX 文件路径]文件名[?查询字符串][#片段标识符] 如果学过Restful风格的话,就能一眼看出两者的区别

Method-请求方法#

这一部分在请求中是位于请求行中,目的是告诉目的设备我将进行什么类型的操作,当然也可以你说你的,我做我的

常用请求方法有以下几种:

请求方法说明版本号
GET获取资源1.0/1.1
POST传输实体(对象)1.0/1.1
PUT传输文件1.0/1.1
DELETE删除文件1.0/1.1
NOTE

除了上面4种,还有许多其他方法,OPTIONS,TRACE等

GET和POST#

GET和POST方法本质上没有区别, 能用GET的地方一般也能用POST,能用POST的地方,也能用GET。

GET习惯上请求体为空,URL中请求参数不为空;POST习惯上请求体不为空,URL中的请求参数为空。

唯一有的区别就是可以被缓存,而POST不能被缓存

TIP

GET一般会被要求实现幂等,而POST不会被要求。

GET#

get方式具有以下特点:

  • URL中的请求参数可以为空,也可以不为空
  • 请求头中有很多键值对结构
  • 请求体一般为空

POST#

  • URL中的请求参数一般为空,但也可以不为空
  • 请求头中有很多键值对结构
  • 请求体一般不为空(请求头中的Content-Type表示类型请求体中的数据类型,Content-Length表示请求体中数据长度)

Https#

https是在http基础上对传输的内容进行了加密操作。利用**SSL/TLS协议**对http中明文内容进行加密包装。

思考#

  1. 为什么请求中会有空行?其作用是什么?
    1. 请求头中可以包含很多信息,如果不用空行,传输无法知道哪里结束 2. http是依赖tcp协议,tcp是面向字节流的,不设定空行,会引发 粘包问题
  2. 什么是幂等?
    同样的请求被执行一次或多次,最后的结果是一样的,服务器状态也是一样的。GET,PUT,DELETE,HEAD一般是幂等的,而POST不是。只与后端服务器的状态有关,每次请求接收到状态码不一定相同
HTTP/HTTPS基础内容
https://onlystem.xyz/posts/http/
作者
Only Stem
发布于
2025-12-31
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时

封面
Sample Song
Sample Artist
封面
Sample Song
Sample Artist
0:00 / 0:00