-
2022-04-01 21:56:46
📢📢📢📢📢📢
哈喽!大家好,我是 【梦想橡皮擦】,10 年产研经验,致力于 Python 相关技术栈传播 💗
🌻 本文如果觉得不错,动动小手点个赞赞吧 👍
🌻 本文如果发现错误,欢迎在评论区中指正哦 💗
👍 技术博客日更者,我喜欢写文章,如果任意一篇文章对你有帮助,就挺好的~ 👍
📣📣📣📣📣📣欢迎大家订阅专栏 ⭐️ ⭐️ 《Python 爬虫 120》⭐️ ⭐️
📆 最近更新:2022 年 3 月 23 日,橡皮擦的第 610 篇原创博客
文章目录
⛳️ 实战案例场景
这篇博客涉及的知识点很小,就是为了获取 HTTP 响应数据,其中包括响应头和响应体两部分内容,如果配合开发者工具查阅,本文对应的数据查看地址如下所示:
更多相关内容 -
HTTP协议的请求头 响应头 响应体 区别与作用总结
2021-12-15 14:37:13一旦收到请求,服务器会向客户端返回一个状态,比如“HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其他信息,这就是服务器端的响应。 常见的请求头 1、 GET或POST:请求类型,后接请求资源、...通常,Web服务器一直使用指定端口(默认为80端口)监听客户端的请求。请求由客户端发起,创建一个到服务器指定端口的TCP连接。一旦收到请求,服务器会向客户端返回一个状态,比如“HTTP/1.1 200 OK”,以及返回的内容,如请求的文件、错误消息、或者其他信息,这就是服务器端的响应。
常见的请求头
1、 GET或POST:请求类型,后接请求资源、协议和版本
2、 Host:主机和端口
3、 Connection:是否使用持续连接
4、 User-Agent:客户端浏览器的名称
5、 Accept:浏览器可接受的MIME类型
6、 Accept-Encoding:浏览器知道如何解码的数据编码类型
7、 Accept-Language:浏览器指定的语言
8、 Accept-Charset:浏览器支持的字符编码
9、 Cookie:保存的Cookie对象
响应状态
响应信息的第一行就是响应状态,内容依次是当前HTTP版本号,三位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。状态代码的第一个数字代表当前响应的类型,xx表示两位数字。
a、 1xx消息:请求已被服务器接收,继续处理
b、 2xx成功:请求已成功被服务器接收、理解、并接受
c、 3xx重定向:需要后续操作才能完成这一请求
d、 4xx请求错误:请求含有词法错误或者无法被执行
e、 5xx服务器错误:服务器在处理某个正确请求时发生错误
响应头
响应头用于指示客户端如何处理响应体,告诉浏览器响应的类型、字符编码和字节大小等信息。
1、 Allow:服务器支持哪些请求方法(如GET、POST等)
2、 Content-Encoding:文档的编码(Encode)类型。只有在解码之后才可以得到Content-Type头指定的内容类型
3、 Content-Length:内容长度。只有当浏览器使用持久HTTP连接时才需要这个数据
4、 Content-Type:表示后面的文档属于什么MIME类型
5、 Date:当前的时间
6、 Expires:文档过期时间
7、 Refresh:表示浏览器应该在多少时间之后刷新文档,以秒计
8、 Server:服务器名称
9、 Set-Cookie:设置与页面关联的Cookie
10、 WWW-Authenticate:客户应该在Authorization头中提供的授权信息类型
响应体
响应头之后紧跟着一个空行,然后接响应体。响应体就是Web服务器发送到客户端的实际内容。除网页外,响应体还可以是诸如Word、Excel或PDF等其他类型的文档,具体是哪种文档类型由Content-Type指定的MIME类型决定。
参考博客:https://www.cnblogs.com/lonelyshy/p/13651159.html
-
HTTP响应(作用,格式,响应码的组成和分类,常见响应状态码)
2022-03-31 18:50:48Content-Type:描述响应体中数据类型 空行:代表响应头结束 响应体:绝大多数不为空。(请求成功:回发数据;失败:回发错误信息) HTTP响应状态码 HTTP响应状态码(HTTP Status Code),也属于...目录
一,HTTP响应的作用
- 服务器端,针对客户端发送的http请求,回发响应数据。------http应答!
- 规定回发给客户端的数据组织格式
二,HTTP响应的整体格式
响应行(状态行):协议版本(空格)状态码(空格)状态描述
响应头:
- 语法格式key:value
- Content-Type:描述响应体中数据类型
空行:代表响应头结束
响应体:绝大多数不为空。(请求成功:回发数据;失败:回发错误信息)
三,HTTP响应状态码
- HTTP响应状态码 (HTTP Status Code),也属于HTTP协议的一部分,用来标识响应的状态
- 响应状态码会随着响应消息一起被发送至客户端浏览器,浏览器根据服务器返回的响应状态码,就能知道这次HTTP请求的结果是成功还是失败了。
四,HTTP响应状态码的组成和分类
HTTP 状态码由三个十进制数字组成
- 第一个十进制数字定义了状态码的类型
- 后两个数字用来对状态码进行细分。
HTTP 状态码共分为 5种类型:
1** 信息响应,服务器收到请求,需要请求者继续执行操作。 2** 成功响应,操作被成功接收并处理。 3** 重定向,需要进一步的操作以完成请求。 4** 客户端响应,请求包含语法错误或无法完成请求。 5** 服务器响应,服务器在处理请求的过程中发生了错误。 五,HTTP常见响应状态码
2**成功响应相关
2** 范围的状态码,表示服务器已成功接收到请求并进行处理。
状态码 状态英文名称 中文描述 200 OK 请求成功。一般用于 GET 与 POST 请求 201 Created 已创建。成功请求并创建了新的资源,通常用于 POST 或 PUT 请求 3**重定向相关
3** 范围的状态码,表示表示服务器要求客户端重定向,需要客户端进一步的操作以完成资源的请求。
状态码 状态英文名称 中文描述 301 Moved Permanently 永久移动。请求的资源已被永久的移动到新URI,返回信息会包括新的URI,浏览器会自动定向到新URI。今后任何新的请求都应使用新的URI代替。 302 Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URI。 304 Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源(响应消息中不包含响应体)。客户端通常会缓存访问过的资源。 4**客户端响应相关
4** 范围的状态码,表示客户端的请求有非法内容,从而导致这次请求失败。
状态码 状态英文名称 中文描述 401 Unauthorized 当前请求需要用户验证。 403 Forbidden 服务器已经理解请求,但是拒绝执行它。 404 Not Found 请求失败。服务器无法根据客户端的请求找到资源(网页)。 408 Request Timeout 请求超时。服务器等待客户端发送的请求时间过长,超时。 400 Bad Request 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误。 5**服务端响应相关
5** 范围的状态码,表示服务器未能正常处理客户端的请求而出现意外错误。
状态码 状态英文名称 中文描述 500 Internal Server Error 服务器遇到了不知道如何处理的情况。 501 Not Implemented 此请求方法不被服务器支持且无法被处理。只有GET和HEAD是要求服务器支持的,它们必定不会返回此错误代码。 503 Service Unavailable 服务器没有准备好处理请求。由于超载或系统维护,服务器暂时的无法处理客户端的请求。 六,HTTP响应细节——常用响应头
HTTP响应中的常用响应头(消息头)
Location: 服务器通过这个头,来告诉浏览器跳到哪里
Server:服务器通过这个头,告诉浏览器服务器的型号
Content-Encoding:服务器通过这个头,告诉浏览器,数据的压缩格式
Content-Length: 服务器通过这个头,告诉浏览器回送数据的长度
Content-Language: 服务器通过这个头,告诉浏览器语言环境
Content-Type:服务器通过这个头,告诉浏览器回送数据的类型
Refresh:服务器通过这个头,告诉浏览器定时刷新
Content-Disposition: 服务器通过这个头,告诉浏览器以下载方式打数据
Transfer-Encoding:服务器通过这个头,告诉浏览器数据是以分块方式回送的
Expires: -1 控制浏览器不要缓存
Cache-Control: no-cache
Pragma: no-cache
七,响应头汇总
完整的 HTTP 响应状态码,可以参考MDN官方文档
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
了解更多🙂HTTP协议🙂内容,可以关注博主或者专栏哦!
HTTP协议的认识和特点,请戳下面链接!
https://blog.csdn.net/weixin_53436351/article/details/123810621
URL的概念与组成,请戳下面链接!
https://blog.csdn.net/weixin_53436351/article/details/123833107
HTTP请求(方法,格式;Fidder抓包;get与post请求的区别),请戳下面链接!
https://blog.csdn.net/weixin_53436351/article/details/123842331
HTTP响应(作用,格式,响应码的组成和分类,常见响应状态码),请戳下面链接!
https://blog.csdn.net/weixin_53436351/article/details/123880445
-
HTTP请求,响应体报文(行,头,体)
2018-11-28 00:08:14HTTP简介: 1.HTTP是Hyper Text Transfer Protocol的缩写(超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。你问我什么是超文本? 2.是基于TCP/IP通信协议来...HTTP简介:
1.HTTP是Hyper Text Transfer Protocol的缩写(超文本传输协议),是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。你问我什么是超文本?
2.是基于TCP/IP通信协议来传递数据的(HTML文件,图片文件,查询结果等)。
3.HTTP基于C/S架构模型(客户端/服务端),通过一个可靠的链接来交换信息。浏览器作为HTTP客户端向WEB服务器发送所有的请求,WEB服务器收到请求以后,向HTTP客户端发送响应消息。
特点:
1.简单快速:客户端每次向服务器发出请求的时候只需要传递请求方法和路径。常用方法比如:GET,POST,每种方法规定了客户端和服务端联系方式的不同。由于HTTP协议简单,使得HTTP服务器程序规模小,因此通信速度较快。
2.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type标记。
3.无连接:无连接的意思是每次连接只会处理一个请求(相对的也会有一个响应)。服务器处理完客户的请求以后,客户端拿到了服务器发出的响应,随后断开连接。采用这种方式节省传输时间。
4.无状态:HTTP协议是无状态协议。无状态是指协议对事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。
HTTP请求报文:
HTTP请求报文由三部分组成
请求行由(123)组成:1是请求方法;2是url地址,它和报文头的Host属性组成完整的请求URL;3是协议名称和版本号。
请求头(4):是HTTP的报文头,报文头包含若干个属性,格式均为"属性名:属性值",服务端由此获得客户端的信息。与缓存有关的信息都放在头部(header)。(key:value的形式,一个key对应一个value,一个key对应多个value,但是其实一个key也可以对应多个value。结果区别就是aa:bb和aa:bb,cc)
请求体(5):它将一个页面表单中的组件值通过param1=value1¶m2=value2的键值对形式编码成一个格式化串,它承载着多个请求参数的数据。
HTTP请求报文属性:
Accept :请求报文通过Accept属性告诉服务器,大哥我就只能接受这个类型的响应(比如纯文本),你发图片我就GG了!(当然了,Accept属性的值可以为一个或者多个MIME类型的值,就可以接受几种响应啦)
cookie:缓存信息。
Cache-Control:对缓存进行控制。比如你希望禁止缓存,或者缓存一年,或者一月,这些都是通过设置这个属性。
HTTP响应报文也由三部分组成
响应行(12) 组成:1是报文协议及版本,2是状态码及描述。
响应头(3):和请求头一样,由属性组成。
响应体(4):是服务器返回给客户端的文本信息。
HTTP响应报文属性
Cache-Control :响应输出到客户端后,服务端通过该报文头属告诉客户端如何控制响应内容的缓存。常见的有:(默认 为private)
private: 客户端可以缓存
public: 客户端和代理服务器都可缓存(前端的同学,可以认为public和private是一样的)
max-age=xxx: 缓存的内容将在 xxx 秒后失效
no-cache: 需要使用对比缓存来验证缓存数据
no-store: 所有内容都不会缓存Location:当我们想要页面重定向redirect的时候,设置Location的属性值(地址)跳转到该地址
Cookie:缓存信息
响应状态码
- 1xx 消息,一般是告诉客户端,请求已经收到了,正在处理,别急...
- 2xx 处理成功,一般表示:请求收悉、我明白你要的、请求已受理、已经处理完成等信息.
- 3xx 重定向到其它地方。它让客户端再发起一个请求以完成整个处理。
- 4xx 处理发生错误,责任在客户端,如客户端的请求一个不存在的资源,客户端未被授权,禁止访问等。
- 5xx 处理发生错误,责任在服务端,如服务端抛出异常,路由出错,HTTP版本不支持等。
◆200 (OK): 找到了该资源,并且一切正常。
◆302/307:临时重定向,指出请求的文档已被临时移动到别处, 此文档的新的url在location响应头中给出
◆304 (NOT MODIFIED): 该资源在上次请求之后没有任何修改。这通常用于浏览器的缓存机制。
◆401 (UNAUTHORIZED): 客户端无权访问该资源。这通常会使得浏览器要求用户输入用户名和密码,以登录到服务器。
◆403 (FORBIDDEN): 客户端未能获得授权。这通常是在401之后输入了不正确的用户名或密码。
◆404 (NOT FOUND): 在指定的位置不存在所申请的资源。
◆500 Internal Server Error:看到这个错误,你就应该查查服务端的日志了,肯定抛出了一堆异常,别睡了,起来改BUG去吧!
-
HTTP响应报文的结构组成
2022-01-25 15:12:27响应报文 超文本传输协议(Hypertext Transfer Protocol,简称HTTP)是应用层协议...HTTP 是一种请求/响应式的协议,即一个客户端与服务器建立连接后,向服务器发送一个请求;服务器接到请求后,给予相应的响应信息。 ... -
手动去设置HTTP响应行、响应头、响应体
2019-01-25 13:54:33import java.io.IOException; import javax.servlet.ServletException;...import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.htt... -
http消息体和响应体
2014-01-07 10:59:12HTTP基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式。HTTP允许传输任意类型的数据对象,HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面... -
通俗易懂。HTTP请求行、请求头、请求体、响应行、响应头、响应体详解
2021-11-04 10:34:11HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: 其中,①,②和③属于请求行;④属于请求头;⑤属于报文体 ① 是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、PUT、... -
http请求 响应数据格式
2020-03-26 21:30:48请求行+请求头+数据体 1.请求行包含三个内容method + request-URI + http-version method包含有post , get, head,delete, put, connect, options, patch, propfind, propatch, mkcol, copy, move, lock, unloc... -
http请求,get请求和post请求体以及响应体
2016-11-20 16:02:20一、http请求 1.Http请求格式 Http请求即客户端发送给...请求正文,也称请求体 2.使用HttpWatch抓包工具 请求信息详细内容如下: GET /Example03/ HTTP/1.1 Accept: image/jpeg, application/x-ms-application, image/g -
http响应报文的长度
2019-09-28 16:37:23HTTP1.0 http1.0因为是短连接,所以是没有keepalive的,对方会直接close()掉。 也就是: while (read()/recv() == -1) ... ...响应状态(Response Status)为1xx/204/304或者请求方法为HEAD时,消... -
http请求体和响应体图解
2018-08-20 21:19:21 -
HTTP五大类响应类型含义
2019-06-11 16:58:17HTTP状态码(响应码)用来表明HTTP请求是否已经成功完成. HTTP响应类型一共分五大类:1XX:消息响应, 2XX:成功响应, 3XX:重定向, ... -
HTTP请求行、请求头、请求体以及响应行、响应头、响应体
2019-07-10 14:17:00HTTP请求报文解剖 ...HTTP请求报文由3部分组成(请求行+请求头+请求体): 下面是一个实际的请求报文: ①是请求方法,HTTP/1.1 定义的请求方法有8种:GET、POST、... -
HTTP响应详解
2022-01-24 19:45:50HTTP响应详解认识状态码认识响应报头认识响应正文 认识状态码 认识响应报头 认识响应正文 -
HTTP响应的结构
2018-04-24 20:44:51HTTP响应由三个部分组成:状态码(Status Code):描述了响应的状态。可以用来检查是否成功的完成了请求。请求失败的情况下,状态码可用来找出失败的原因。如果Servlet没有返回状态码,默认会返回成功的状态码... -
HTTP响应状态代码----重定向(300–399)
2020-01-04 10:56:16HTTP响应状态代码----重定向(300–399) -
Servlet中的HttpServletResponse设置响应行、响应头和响应体
2021-02-04 14:23:431、设置响应行 public class ResponseServlet01 extends HttpServlet { @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.... -
SpringBoot统一响应体解决方案
2020-06-09 11:32:34通过修改响应返回的JSON数据,让其带上一些固有的字段,例如以下这样的 { "code": 10000, "msg": "success", "data": { "id": 2, "name": "test" } } 其中关键属性的用途如下: code为返回结果的状态码 msg... -
前端学习(四)-----响应行,响应头,响应体
2020-04-24 15:53:15相应行---响应的状态码 HTTP状态码分类 HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型: HTTP状态码分类 分类 分类描述 1** ... -
php curl获取响应头和响应体
2022-02-08 14:36:01if (curl_getinfo($ch, CURLINFO_HTTP_CODE) == '200') { $headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE); $header = substr($result, 0, $headerSize); $body = substr($result, $headerSize); return $... -
HTTP请求与响应(包含响应状态码、HTTPS)
2022-03-23 12:16:17一、通信 1. 通信是信息的传递和交换。 2. 通信三要素 通信主体、通信内容、通信方式。...采用【请求-响应】的交互模式。 2. HTTP发展 版本 产生时间 内容 HTTP/0.9 1991年 不涉及数据包传输;规定客 -
http部分请求、响应报文格式
2018-06-27 13:22:56http部分请求、响应报文格式http请求报文格式HTTP请求报文可以分为GET请求和POST请求报文,要注意的是GET请求没有请求体,POST请求有请求体信息请求行请求方法、资源路径、http版本POST /user/login HTTP/1.1请求... -
HttpClient获取请求/响应体中的数据
2022-04-23 15:09:48那么我们肯定可以从entity中获取请求体/响应体的数据。但是entity似乎并没有提供可以直接获取请求/响应体的方法。那么我们如何拿数据呢? 方法一:使用httpclient提供的工具类 EntityUtils类提供了一系列操作... -
http响应报文,如果响应的内容比较大,客户端怎么样判断接收完了呢?
2018-10-11 22:08:001. http协议有正文大小说明的content-length2. 或者分块传输chunked的话 读到0\r\n\r\n 就是读完了 ------------------------------------------------------...http响应内容比较大的话,会分成多个tcp segment 发... -
http响应里如何设置图片名称和image格式
2019-02-16 16:32:16设置图片名称和格式: public class Servlet extends HttpServlet { private final static Logger logger = LoggerFactory.getLogger(Servlet.class); @Override protected void doGet(HttpServletRequest ... -
Golang HTTP请求Json响应解析方法以及解析失败的原因
2020-05-14 17:56:40一、Golang HTTP请求Json响应解析方法 在Golang Web编程中,json格式是常见的传输格式,那么json数据要怎么解析呢? 例如下面请求地址 http://api.open-notify.org/astros.json 响应数据如下: { "number": 3, ... -
获取并修改springcloud gateway响应体的问题
2021-03-26 09:23:09网关用springcloud gateway路由调用接口,现在需要获取到接口响应数据并做修改。遇到如下几个问题: 1.用postman调用接口没有响应,后端也没报错信息; 2.有响应数据但数据不完整,解析出错; 3.数据响应类型丢失。 ... -
Spring Cloud Gateway 修改返回的响应体
2020-11-24 12:04:38问题描述: 在gateway中修改返回的响应体,在全局Filter中添加如下代码: import org.springframework.core.Ordered; import org.springframework.cloud.gateway.filter.GlobalFilter; import org.springframework....