49. HTTP 请求/应答
HTTP 协议是 Hyper Text Transfer Protocol (超文本传输协议) 缩写, 并且是基于 TCP/IP 通信协议来传递数据.
HTTP 协议特点
- 无连接 : 每次进行一次 HTTP 通信. 服务器处理完客户的请求并收到客户的应答后立即断开连接, 这种方式被称为短连接. 采用这种方式可以节省传输时间, 但是连续传输使用短连接就比较消耗资源. (http1.1后有长连接)
- 无状态 : HTTP协议是无状态协议. 无状态指协议对于事务处理没有记忆能力导致每次处理都会重传, 可能导致每次连接传送的数据量增大. 另一方面, 在服务器不需要先前信息时它的应答就较快.
- 灵活 : HTTP允许传输任意类型的数据对象(图片, 视频等).
- **简单快速 **: 客户向服务器请求服务时, 只需传送请求方法和路径. 因为 HTTP 协议简单, 使得 HTTP 服务器的程序规模小, 而通信速度很快.
HTTP 请求方法
HTTP1.0 有三种请求方法 : GET, POST, HEAD (主要掌握)
HTTP1.1 新增五种请求方法 : OPTIONS, PUT, DELETE, TRACE , CONNECT
方法 | 描述 |
---|---|
GET | 请求指定的页面信息, 并返回实体主体. |
HEAD | 类似于GET请求, 只不过返回的响应中没有具体的内容, 用于获取报头. |
POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件). 数据被包含在请求体中, POST请求可能会导致新的资源的建立和/或已有资源的修改. |
PUT | 从客户端向服务器传送的数据取代指定的文档的内容. |
DELETE | 请求服务器删除指定的页面. |
CONNECT | HTTP/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
第二行 :
- 表示目标主机名是 : www.baidu.com
第三行 :
- 表示客户端使用的是 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 状态码
参考
HTTP请求方法
49. HTTP 请求/应答相关推荐
- 使用JMS实现请求/应答程序
2019独角兽企业重金招聘Python工程师标准>>> JMS是用来为发送者和接收者解耦的: 消息通过一个进程发送给代理,然后代理在另外一个进程异步的接收消息,一种可以利用JMS来实 ...
- 【转】WCF请求应答(Request-Reply)、单向操作(One-Way)、回调操作(Call Back)
[1]请求应答(Request-Reply): 请求应答模式是默认的操作模式.这与经典的C/S编程类似,客户端发送请求,阻塞客户端进程,服务端返回操作结果.请求应答模式与绑定对应关系 : 绑定协议名称 ...
- iNavFlight之MSP DJI协议飞控端请求应答
iNavFlight之MSP DJI协议飞控端请求应答 1. 报文格式 2. 报文标志(flag) 3. 报文命令(cmd) 4. 请求应答 & 反馈报文 4.1 DJI_MSP_API_VE ...
- zmq 可靠的请求-应答模式
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_ht ...
- ZMQ 第四章 可靠的请求-应答模式
感谢原创作者的分享! # ZMQ 第四章 可靠的请求-应答模式 第三章中我们使用实例介绍了高级请求-应答模式,本章我们会讲述请求-应答模式的可靠性问题,并使用ZMQ提供的套接字类型组建起可靠的请求-应 ...
- ZeroMQ 中文指南 第四章 可靠的请求-应答模式【转载】
此文章转载自GitHub : https://github.com/anjuke/zguide-cn 作者信息如下. ZMQ 指南 作者: Pieter Hintjens ph@imatix.com, ...
- ZeroMQ指南:第4章:可靠的请求-应答
本文是阅读http://zguide2.zeromq.org/page:all#toc65的笔记. 第三章用实际的示例探讨了请求-回应模式的高级用法.本章将探讨可靠性的问题,在ZeroMQ的核心请求- ...
- 初探ZeroMQ(二) 请求-应答模式中套结字总结
参考资料:ØMQ - The Guide(英文) 参考资料:ØMQ - The Guide(中文) 本文主要介绍和总结在请求-应答模式中各种套结字的行为. 套结字简介 来点通俗易懂的,先认识下请求-应 ...
- DRPC实时请求应答服务
文章目录 一.简介 二.DRPC设计的目的 三.流式处理 3.1 异步模式 3.2 同步模式(实时请求应答服务) 3.3 关键点 四.DRPC架构 五.配置 六.定义DRPC拓扑 6.1 通过Line ...
最新文章
- 第九课.深度学习常见内容补充
- ASP.NET MVC进阶三
- 《Arduino计算机视觉编程》一3.3 总结
- java 简单图片浏览器_Java实现简单的图片浏览器
- [Leetcode][第332题][JAVA][重新安排行程][欧拉回路 / 欧拉通路][优先队列][DFS]
- c语言中栈的作用,栈(Stack)的概念和应用及C语言实现
- java的VIRT高的问题理解
- NYOJ113 - 字符串替换
- im即时通讯源码/uniapp即时通讯im源码附视频安装教程
- STVP提示The device is protected解决方法
- Java就业知识点大全
- sop8语音芯片选型,九齐硕呈等等比较,看完此篇就足够了
- 量子计算机的基本构成,量子计算机的硬件单元 文/李联宁 1. 量子寄存器 存储一系列量子比特的体系称为量子寄存器。假设有一个由3比特构成的寄存器,在经典计算机中,可... - 雪球...
- unity 四元数旋转各元素值的计算方法
- 如何解决‘CommandNotFoundError: Your shell has not been properly configured to use ‘conda activate’错误
- 【BZOJ4372】—烁烁的游戏(动态点分治)
- 大批量其他经纬度转换为百度地图经纬度
- Linux内核中识别USB设备过程
- html盒子模型的实例,html盒模型的示例分析
- 直播平台软件开发的前端如何实现整套视频直播技术流程