HTTP详细总结

概念

HyperText Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。

特点

  • 基于TCP协议: 面向连接,安全

    TCP是一种面向连接的(建立连接之前是需要经过三次握手)、可靠的、基于字节流的传输层通信协议,在数据传输方面更安全。

  • 基于请求-响应模型的:一次请求对应一次响应

    请求和响应是一一对应关系

  • HTTP协议是无状态协议:对于事物处理没有记忆能力。每次请求-响应都是独立的

    无状态指的是客户端发送HTTP请求给服务端之后,服务端根据请求响应数据,响应完后,不会记录任何信息。这种特性有优点也有缺点,

    • 缺点:多次请求间不能共享数据

    • 优点:速度快

请求数据格式

请求数据总共分为三部分内容,分别是请求行请求头请求体

  • 请求行: HTTP请求中的第一行数据,请求行包含三块内容,分别是 GET请求方式 /请求URL路径 HTTP/1.1HTTP协议及版本

    请求方式有七种,最常用的是GET和POST

  • 请求头: 第二行开始,格式为key: value形式 请求头中会包含若干个属性,常见的HTTP请求头有:

    Host: 表示请求的主机名

    User-Agent: 浏览器版本,例如Chrome浏览器的标识类似Mozilla/5.0 ...Chrome/79,IE浏览器的标识类似Mozilla/5.0 (Windows NT ...)like Gecko;

    Accept:表示浏览器能接收的资源类型,如text/*,image/*或者*/*表示所有;

    Accept-Language:表示浏览器偏好的语言,服务器可以据此返回不同语言的网页;

    Accept-Encoding:表示浏览器可以支持的压缩类型,例如gzip, deflate等。

  • 请求体: POST请求的最后一部分,存储请求参数

    如上图红线框的内容就是请求体的内容,请求体和请求头之间是有一个空行隔开。此时浏览器发送的是POST请求,为什么不能使用GET呢?这时就需要回顾GET和POST两个请求之间的区别了:

    • GET请求请求参数在请求行中,没有请求体,POST请求请求参数在请求体中

    • GET请求请求参数大小有限制,POST没有

响应数据格式

响应数据总共分为三部分内容,分别是响应行响应头响应体

  • 响应行:响应数据的第一行,响应行包含三块内容,分别是 HTTP/1.1HTTP协议及版本 200响应状态码 ok状态码的描述

  • 响应头:第二行开始,格式为key:value形式

    响应头中会包含若干个属性,常见的HTTP响应头有:

    复制代码
    Content-Type:表示该响应内容的类型,例如text/html,image/jpeg;
    Content-Length:表示该响应内容的长度(字节数);
    Content-Encoding:表示该响应压缩算法,例如gzip;
    Cache-Control:指示客户端应如何缓存,例如max-age=300表示可以最多缓存300秒
  • 响应体: 最后一部分。存放响应数据

    上图中<html>...</html>这部分内容就是响应体,它和响应头之间有一个空行隔开。

相关推荐
王二端茶倒水1 天前
从千兆到万兆:宽带运营不能只卖套餐,要管用户生命周期从千兆到万兆:宽带运营需要管理用户生命周期
后端·网络协议·架构
extrao3 天前
🚀 Kea DHCP4 自动分配系统完整搭建
网络协议
喵个咪3 天前
Go-Wind HTTP 服务器从入门到精通
后端·http·go
不做菜鸟的网工5 天前
BGP特性
网络协议
明月_清风7 天前
开发者网络概念全扫盲:一篇搞定
后端·网络协议
刘马想放假7 天前
Modbus 全栈技术解析:TCP、RTU、ASCII、RTU over TCP
数据结构·网络协议
王二端茶倒水8 天前
一套可落地的无线运营方案,不能只管 AP,还要管用户、计费和运维
网络协议
162723816088 天前
EtherCAT 分布式时钟(DC)原理与配置实战:把多轴真正"对齐到同一时刻"
网络协议
王二端茶倒水9 天前
宽带无线项目,怎么从一次性交付变成长期运营收入?
网络协议