应用层协议HTTP(1)

应用层协议HTTP(1)

HTTP 协议

虽然我们说, 应用层协议是我们程序猿自己定的. 但实际上, 已经有大佬们定义了一些现成的, 又非常好用的应用层协议, 供我们直接参考使用. HTTP(超文本传输协议)就是其中之一。

在互联网世界中,HTTP(H yperT ext T ransfer Protocol,超文本传输协议)是一个至关重要的协议。它定义了客户端(如浏览器)与服务器之间如何通信,以交换或传输超文本(如 HTML 文档)。

HTTP 协议是客户端与服务器之间通信的基础。客户端通过 HTTP 协议向服务器发送请求,服务器收到请求后处理并返回响应。HTTP 协议是一个无连接、无状态的协议,即每次请求都需要建立新的连接,且服务器不会保存客户端的状态信息。

认识 URL

平时我们俗称的 "网址" 其实就是说的 URL

在HTTP的角度,资源相当于文件,文件在指定的路径下

HTTP[s]:port

:后面相当于域名,域名相当于IP,路径是目标机器下的特定文件,两者构成唯一的文件

HTTP 协议请求与响应格式

HTTP 请求

• 首行: [方法] + [url] + [版本]

• Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\r\n 分隔;遇到空行表示 Header 部分结束

• Body: 空行后面的内容都是 Body. Body 允许为空字符串. 如果 Body 存在, 则在Header 中会有一个 Content-Length 属性来标识 Body 的长度;

HTTP 响应

• 首行: [版本号] + [状态码] + [状态码解释]

• Header: 请求的属性, 冒号分割的键值对;每组属性之间使用\r\n 分隔;遇到空行表示 Header 部分结束

Body: 空行后面的内容都是 Body. Body 允许为空字符串. 如果 Body 存在, 则在Header 中会有一个 Content-Length 属性来标识 Body 的长度; 如果服务器返回了一个 html 页面, 那么 html 页面内容就是在 body 中.

HTTP 的方法

其中最常用的就是 GET 方法和 POST 方法.

总结

1. HTTP协议的基本概念

  • 定义:超文本传输协议,是客户端(如浏览器)和服务器之间通信的规则。
  • 关键特性无连接 (每次请求-响应后断开)、无状态(服务器不记录上次请求的信息)。这是理解Session、Cookie等技术为何存在的基础。

2. URL的组成与含义

  • 作用:互联网上资源的唯一标识符("网址")。
  • 核心组成部分协议://域名(或IP):端口号/路径?查询字符串#锚点
  • 重点理解域名:端口号/路径唯一地定位了服务器上的一个资源。

3. HTTP报文格式(重中之重)

  • 通用结构首行+ Header(头部)+ 空行+ Body(正文)
  • 请求报文首行方法 URL 版本(如 GET /index.html HTTP/1.1头部 :包含请求的元信息,如 Host, User-Agent, Content-Type, Content-Length(当有Body时必须)。
  • 响应报文首行版本 状态码 状态码描述(如 HTTP/1.1 200 OK头部 :包含响应的元信息,如 Content-Type, Content-Length, Server正文:服务器返回的实际数据,如HTML页面内容。

4. 常用HTTP方法

  • GET:获取资源。参数通常直接暴露在URL的查询字符串中。
  • POST :提交数据。参数通常放在请求体中,更安全,可传输更大数据量。
    ET**:获取资源。参数通常直接暴露在URL的查询字符串中。
  • POST:提交数据。参数通常放在请求体中,更安全,可传输更大数据量。
  • 简单对比:GET是"要东西",POST是"给东西"。
相关推荐
乐维_lwops4 分钟前
案例解读 | 某上市汽车企业集团基础监控+网管平台建设实践
网络·汽车·it基础监控
小小说( ̄(エ) ̄)17 分钟前
聚合链路---链路备份技术
网络
网工养成记_1213825 分钟前
网络故障排查日常记录
网络·网络协议
不早睡不改名@1 小时前
Netty源码分析---Reactor线程模型深度解析(二)
java·网络·笔记·学习·netty
门思科技1 小时前
LoRaWAN网络部署全流程指南:覆盖规划、网关选型与容量优化实战解析
网络
Days20501 小时前
关于SSL证书签发时长调整通知
网络协议·https·ssl
婷婷_1721 小时前
【PCIe验证每日学习·Day25】PCIe 电源管理机制(L0s/L1/L2/L3)全解析
网络·学习·程序人生·芯片·电源管理·pcie 验证·低功耗状态
攻城狮在此2 小时前
IPSG配置(IP与MAC地址绑定,动态绑定)
网络·安全
zhaoshuzhaoshu2 小时前
蓝牙 ACL 与 SCO 链路联系与详细区别对比
网络·物联网·蓝牙·无线
北京耐用通信2 小时前
架桥记:耐达讯自动化CC-Link IE转EtherCAT的工业协议融合实战
人工智能·科技·物联网·网络协议·自动化