49. HTTP 请求/应答

HTTP协议是无连接、无状态的超文本传输协议,基于TCP/IP通信。其特点是灵活简单,允许传输任意类型的数据。请求包括GET、POST等方法,由请求行、请求头部、空行和请求数据四部分组成。应答则包含状态行、消息报头、空行和应答正文。HTTP状态码用于表示请求的处理结果。本文概述了HTTP请求和应答的基础知识。

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


HTTP 协议是 Hyper Text Transfer Protocol (超文本传输协议) 缩写, 并且是基于 TCP/IP 通信协议来传递数据.


HTTP 协议特点

  1. 无连接 : 每次进行一次 HTTP 通信. 服务器处理完客户的请求并收到客户的应答后立即断开连接, 这种方式被称为短连接. 采用这种方式可以节省传输时间, 但是连续传输使用短连接就比较消耗资源. (http1.1后有长连接)
  2. 无状态 : HTTP协议是无状态协议. 无状态指协议对于事务处理没有记忆能力导致每次处理都会重传, 可能导致每次连接传送的数据量增大. 另一方面, 在服务器不需要先前信息时它的应答就较快.
  3. 灵活 : HTTP允许传输任意类型的数据对象(图片, 视频等).
  4. **简单快速 **: 客户向服务器请求服务时, 只需传送请求方法和路径. 因为 HTTP 协议简单, 使得 HTTP 服务器的程序规模小, 而通信速度很快.

HTTP 请求方法

HTTP1.0 有三种请求方法 : GET, POST, HEAD (主要掌握)

HTTP1.1 新增五种请求方法 : OPTIONS, PUT, DELETE, TRACE , CONNECT

方法描述
GET请求指定的页面信息, 并返回实体主体.
HEAD类似于GET请求, 只不过返回的响应中没有具体的内容, 用于获取报头.
POST向指定资源提交数据进行处理请求(例如提交表单或者上传文件). 数据被包含在请求体中, POST请求可能会导致新的资源的建立和/或已有资源的修改.
PUT从客户端向服务器传送的数据取代指定的文档的内容.
DELETE请求服务器删除指定的页面.
CONNECTHTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器.
OPTIONS允许客户端查看服务器的性能.
TRACE回显服务器收到的请求,主要用于测试或诊断.

HTTP 请求

如果不清楚怎么抓 HTTP 请求和应答, 可以在终端输入 curl -v www.baidu.com/index.html

http 请求部分如下 :

GET /index.html HTTP/1.1
Host: www.baidu.com
User-Agent: curl/7.52.1
Accept: */*

第一行 :

  • GET : 采用 GET 方法
  • /index.html : 指定文件. 即根目录为 www.baidu.com , 其下的 index.html 文件
  • HTTP/1.1 : 客户端的 HTTP 版本是 1.1

第二行 :

第三行 :

  • 表示客户端使用的是 curl

第四行 :

  • Accept : 表示连接的方式. 如 : close 表示短连接, Keep-Alive 表示保持连接.

第五行 :

  • \r\n : 空行

HTTP 请求四部分 :

  • 第一部分: 请求行. 第一行表明了是post请求以及http1.1版本;
  • 第二部分: 请求头部. 第二到第四行.
  • 第三部分: 空行. 第五行的空行.
  • 第四部分: 请求数据. 第六行及之后.

HTTP 应答

HTTP 应答部分如下 :

HTTP/1.1 200 OK
Accept-Ranges: bytes
Content-Length: 2381
Content-Type: text/html

HTTP应答也由四个部分组成. 分别是 : 状态行、消息报头、空行和应答正文.

HTTP 应答四部分

  • 第一部分(第一行) : HTTP协议版本号, 状态码[1], 状态消息.
  • 第二部分(2到4行) : 用来说明客户端要使用的一些附加信息.
  • 第三部分(第五行) : 空行.
  • 第四部分: 第六行及之后.

小结

本节只是简单的归纳了 HTTP 请求和应答的基础知识, 希望大家能够掌握.


参考

HTTP请求方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值