死磕HTTP协议----HTTP特点与报文格式

本文深入解析HTTP协议,介绍其作为超文本传输协议的基础概念,强调无连接、无状态、灵活及简单快速的主要特点,探讨HTTP报文结构及其传输机制,为理解现代Web通信奠定基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简单的HTTP协议

一.简介

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。

二.主要特点

HTTP主要有五大特点:

A.用于客户端和服务器端之间通信

请求资源的一端为客户端,提供资源的一端为服务段。HTTP协议能明确区分哪段是客户端,哪段是服务段。

B.无连接

HTTP协议初始版本,每进行一次HTTP通信就要断开一次TCP连接,这样设计是因为当时通信传输容量都很小,这样设计对资源的占用和响应都是友好的。
但是,随着HTTP的普及,传输的内容复杂起来,每次请求都会造成多次TCP连接和断开,增加了通信的开销。HTTP/1.1之后,采用默认长连接的方式实现HTTP协议,只要任意一端没有明确提出断开连接,则保持TCP连接状态。这样访问一个网页就可以减少打量TCP连接的重复建立和断开,减少额外开销,提高响应速度。
不仅仅如此,因为长连接的诞生,管线化也成为可能,所谓管线化,即不用等待响应即可直接发送下一个请求。在这里插入图片描述

C.无状态

HTTP是一种不保存状态的协议,即无状态。HTTP协议不对请求和响应的状态进行保存,这是为了更快的处理大事务,确保协议的可伸缩性。虽然无状态能够加快访问,但是当处理需要保持状态的业务就变得棘手了,所以,引入了Cookie、Session、Token技术

D.灵活

HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type(Content-Type是HTTP包中用来表示内容类型的标识)加以标记。

E.简单快速

1.客户向服务器请求服务时,只需传送请求方法和路径,协议简单。
2.面向无连接,不保存状态,传输快速。
3.编码提示传输效率:
3.1压缩传输的内容编码,即把实体压缩变小后再发送,主要有4种编码格式

gzip(GNU zip)
compress(UNIX 系统的标准压缩)
deflate(zlib)
identity(不进行编码)

3.2分割发送的分块传输编码
传输大容量数据时,把数据分割成多块,能够让浏览器逐步显示页面。
4.缓存
两种实现方式
1.让代理服务器进行缓存;
2.让客户端浏览器进行缓存。

三.HTTP报文

分为请求报文和响应报文在这里插入图片描述
HTTP报文格式为报文首部+空行(CR+LF)+报文主体

报文首部包括三部分:

1.请求行或状态行

  • 请求行(包含用于请求的方法,URI,HTTP版本)
  • 响应行(包含响应结果的状态码,原因短语和HTTP版本)

2.首部字段(包含请求和响应的各种条件和属性)

  • 请求(响应)首部字段
  • 通用首部字段
  • 实体首部字段

3.其他(可能包含HTTP的RFC里未定义的首部,比如cookie)

参考资料

《图解HTTP》–上野宣

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值