Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >【Node.js】HTTP协议、HTTP的请求报文和响应报文

【Node.js】HTTP协议、HTTP的请求报文和响应报文

作者头像
颜颜yan_
发布于 2023-03-06 12:10:59
发布于 2023-03-06 12:10:59
1.2K0
举报

HTTP协议、HTTP的请求报文和响应报文

HTTP协议

HTTP 全称为超文本传输协议,是用于从WWW服务器传输超文本到本地浏览器的传送协议,基于TCP的连接方式,它可以使浏览器更加高效,使网络传输减少。 HTTP协议就是用于规范客户端浏览器和服务器端以什么样的格式进行通信数据交互,作为应用层的面向对象的协议,HTTP由请求和响应构成,是一个标准的客户端服务器模型,也是一个无状态的协议。

HTTP主要特点

  • 支持客户/服务器模式。
  • 简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的由GET、HEAD、POST,每种方法规定了客户与服务器联系的类型不同。
  • 灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。
  • 无连接:无连接的含义是限制每次连接只处理一个请求。
  • 无状态:HTTP是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

HTTP的请求报文和响应报文

当我们打开一个网站,单击F12,进入Network窗口,单击默认头信息选项卡,可以看到格式化后的响应报文和请求报文。如下,Response Headers为响应报文,Request Headers为请求报文。

单击Request Headers右边的view source可以打开要找的请求报文。

请求报文

一个Http请求报文由请求行、请求消息头、空行和请求体四部分组成,其中空行代表请求头部结束。

请求行

请求行位于请求消息的第一行,它包括三部分,分别是请求方式、资源路径以及所使用的HTTP协议版本,以空格进行划分。如下,GET是请求方式,“/”是请求路径,“HTTP/1.1”表示协议版本。 HTTP协议中常用的请求方式主要是GETPOST,当用户在浏览器地址栏中直接输入某个URL地址或者单击网页上一个超链接时,浏览器将默认使用GET方式发送请求。如果将网页上的form表单的method属性设置为POST,就会以POST方式发送请求。

请求消息头

请求消息头由关键字/值对组成,每行一对,关键字和值用英文冒号“:”分隔。请求头部通知服务器有关客户端请求的信息,典型的请求头有:

  • User-Agent:产生请求的浏览器类型
  • Accept:客户端可识别的响应内容类型列表。"*"用于按范围将类型分组,用“ * / *”指示可接受全部类型,用“type/ * ”指示可接受type类型的所有子类型。
  • Accept-Encoding:客户端可接受的编码压缩格式。
  • Accept-Language:客户端可接受的自然语言。
  • Accept-Charset:可接受的应答字符集。
  • Host:请求的主机名,允许多个域名同处一个ip地址,即虚拟主机
  • connection:连接方式(close或者keepalive)。
  • Cookie:存储于客户端扩展字段,向同一域名的服务器端发送属于该域的cookie。

空行

最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头。

请求体

请求体的内容就是请求数据,请求数据不在GET方法中使用,而是在POST方法中使用。与请求体相关的最常使用的是包体类型Content-Type和包体长度Content-Length。

响应报文

一个HTTP的响应报文由状态行、响应消息头、空行和响应体四部分组成。

响应状态行

响应状态行包括HTTP协议版本、成功或错误的整数代码(状态码)和对状态码进行描述的文本信息,以空格进行划分。 状态代码由3位数字组成,表示请求是否被理解或被满足。HTTP响应状态码的第一个数字定义了响应的类别,后面两位没有具体的分类,第一个数字有5种可能的取值,如下:

  • 1xx:表示请求已接收,需要继续处理。
  • 2xx:表示请求已成功被服务器接收、理解并接受。
  • 3xx:为完成请求,客户端需要进一步细化请求。
  • 4xx:客户端的请求错误。
  • 5xx:服务端出现错误。

HTTP协议常用状态码

状态码

说明

200

表示服务器成功处理了客户端的请求

302

表示请求的资源临时从不同的URL响应请求,但请求者应继续使用原有位置来进行以后的请求。

404

表示服务器找不到请求的资源

500

表示服务器发送错误,无法处理客户端的请求

响应消息头

状态行后紧接着是若干响应消息头, 服务器端通过响应消息头向客户端传递附加信息,包括服务程序名、被请求资源需要的认证方式、客户端请求资源的最后修改时间、重定向地址等信息。响应头包括:

  • Location:Location响应报头域用于重定向接收者到一个新的位置。
  • Server:Server响应报头域包含了服务器用来处理请求的软件信息及其版本。
  • Vary:指示不可缓存的请求头列表。
  • Connection:连接方式。

空行

最后一个响应头部之后是一个空行,发送回车符和换行符,通知服务器以下不再有响应头部。

响应体

响应体就是响应数据,包括服务器返回给客户端的文本信息。

总结

以上就是今天的学习内容啦~ 如果有兴趣的话可以订阅专栏,持续更新呢~ 咱们下期再见~

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
HTTP请求报文和响应报文
一个HTTP请求报文由请求行(request line)、请求头部(header)、空行和请求数据4个部分组成。
10JQKA
2019/10/23
2.3K0
HTTP请求报文和响应报文
Http请求报文格式和响应报文格式
客户端连上服务器后,向服务器发出获取某个Web资源的消息,称之为客户端向服务器发送了一个HTTP请求。
chenchenchen
2022/03/09
8.4K0
Http请求报文格式和响应报文格式
工具篇 - HTTP协议报文结构及示例03
前言 从事性能测试必不可绕过的就是协议,对基本知识的了解也还,还是深入掌握协议的机制,都能让你在从事性能测试实施时显得更加顺手。 下面我们就HTTP协议及性能测试过程必须掌握的一些分析工具来进行分享。
苦叶子
2018/04/04
1.1K0
工具篇 - HTTP协议报文结构及示例03
浅析http报文
在上述过程中第三步浏览器给服务器发送的是http请求报文,第五步服务器将资源发送给浏览器的过程中发送的是http响应报文。
你的益达
2020/08/17
7740
网络编程之HTTP请求报文和HTTP响应报文
HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。
lyb-geek
2018/07/26
1.2K0
网络编程之HTTP请求报文和HTTP响应报文
干货 |超详细HTTP协议请求报文归纳总结
HTTP协议(Hyper Text Transfer Protocol,超文本传输协议),是用于从万维网(WWW:World Wide Web )服务器传输超
网络安全自修室
2021/11/25
1.7K0
干货 |超详细HTTP协议请求报文归纳总结
HTTP初始(一)
HTTP是由HTTP请求和HTTP响应构成的。那么如何来发起一个HTTP请求呢?简单来说,你只要在浏览器网址栏中输入一个网址(URL),按下回车那么一个HTTP请求就发出了,界面发生了跳转或者数据发生了改变,就表明一个HTTP响应反馈来了。
东边的大西瓜
2022/05/05
6050
HTTP初始(一)
HTTP -- 请求/响应 结构
  2.Content- Type:表示属于什么类型文档。一般默认是 text/plain.通常指定为 text/html
小蔚
2019/09/11
3.6K0
网络协议:透彻解析HTTP协议
HTTP(HyperText Transfer Protocol) 即 超文本传输协议,它是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万维网(www)的数据通信的基础。
栗筝i
2022/12/01
2.6K0
网络协议:透彻解析HTTP协议
HTTP 协议的前世今生
Web 界面当然不会凭空出来,根据 Web 浏览器地址栏中指定的 URL,Web 使用一种名为 HTTP 的协议作为规范,完成从客户端到服务端的一些流程。「可以说,Web 是建立在 HTTP 协议上进行通信的」。
飞天小牛肉
2021/02/26
4060
HTTP 协议的前世今生
HTTP请求响应报文&&相关状态码&&GET_POST请求方法 总结
请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。比如 GET /data/info.html HTTP/1.1
书童小二
2018/09/03
2.5K0
HTTP请求响应报文&&相关状态码&&GET_POST请求方法  总结
HTTP 报文
当客户端发出一个请求,服务器就会做出响应,返回一个响应报文。无论是请求报文还是响应报文都是由三部分组成:Line ,header,body。
Yif
2019/12/26
1.4K0
HTTP常见面试题
HTTP常见面试题 Http与Https的区别: Http与Https的区别: HTTP 的URL 以http:// 开头,而HTTPS 的URL 以https:// 开头 HTTP 是不安全的,而 HTTPS 是安全的 HTTP 标准端口是80 ,而 HTTPS 的标准端口是443 在OSI 网络模型中,HTTP工作于应用层,而HTTPS 的安全传输机制工作在传输层 HTTP 无法加密,而HTTPS 对传输的数据进行加密 HTTP无需证书,而HTTPS 需要CA机构wosign的颁发的SSL证书 什么是H
Java3y
2018/03/15
1.7K0
HTTP常见面试题
解析一次完整的HTTP请求与响应
图片来自:理解Http请求与响应http://android.jobbole.com/85218/
ZhangXianSheng
2019/05/28
1.7K0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
有的小伙伴或者童鞋们可能会好奇地问宏哥,不是讲解和分享抓包工具了怎么这里开始讲解HTTP和HTTPS协议了。这是因为你对HTTP协议越了解,你就能越掌握Fiddler的使用方法,反过来你越使用Fiddler,就越能帮助你了解HTTP协议。
北京-宏哥
2022/06/30
1K0
《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(1)-HTTP和HTTPS基础知识
Http协议详解
若每个网站都有自己的规则,整个互联网就乱套了,而且用户访问也不是很方便,每个网站都要开发属于自己的客户端软件,致使运营成本变大。
贾维斯Echo
2023/10/18
4050
Http协议详解
HTTP协议详细介绍,面试详全强助攻!
Hi,大家好。我们日常生活中经常会使用浏览器访问Web站点这个过程中到底发生了什么吗?为什么我们在浏览器地址栏上面输入要访问的URL后就可以访问到Web页面呢?这几乎是面试过程中的高频问题。
可可的测试小栈
2021/06/09
4920
Wireshark抓包:详解Http协议--响应报文
响应报文:响应行+响应头部+空一行(表示响应头部结束了)+响应正文(服务器要真正给你返回的一个页面内容)。
清菡
2022/06/21
2.8K0
Wireshark抓包:详解Http协议--响应报文
HTTP请求报文和响应报文
文章作者:Tyan 博客:noahsnail.com  |  CSDN  |  简书
Tyan
2022/05/09
8860
Python网络编程——HTTP响应报文
概述 HTTP报文分为请求报文和响应报文。 HTTP响应报文格式 响应行\r\n 响应头\r\n 空行\r\n 响应体\r\n 原始报文 ---- 响应行(状态行) -------- HTTP/1.1 200 OK #协议版本 状态码 状态描述 ---- 响应头 ---------- Accept-Ranges: bytes #表明服务器是否支持指定范围的请求,比如bytes,表明支持字节请求 Content-Encoding: gzip #编码方式 Content-Length: 1966
落雨
2022/02/27
29.6K0
相关推荐
HTTP请求报文和响应报文
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档