计算机网络【HTTP协议】(上)

简介: 计算机网络【HTTP协议】(上)

🍎一.HTTP协议概述


🍒1.什么是HTTP协议


HTTP/HTTPS协议是应用层的网路协议



5249d80f172e471d856d3880c4e93327.png



目前大多数情况HTTP在传输层是基于TCP(HTTP1/2 是基于TCP,最新的HTTP协议是基于UDP协议,但是我们目前常用的HTTP应用层协议是HTTP1.0)


应用层协议很多时候都是程序员自己定制的,需要根据具体的场景来制定应用层协议,但是由于程序员水平参差不齐,大佬设计的协议很好用,菜鸟设计的协议一言难尽,于是有一些大佬就发明了很好用的协议,直接让大家照搬,HTTP就是其中的一个典型代表,HTTP虽然已经设计好了,但是它的扩展性极强,可以根据需要让程序员自定义数据信息


当我们在浏览器中输入一个 “网址”, 此时浏览器就会给对应的服务器发送一个 HTTP 请求. 对方服务器收

到这个请求之后, 经过计算处理, 就会返回一个 HTTP 响应


image.png

HTTP是一种超文本传输协议,是互联网上应用最为广泛的一种网络协议,那如何才能看到HTTP的报文格式或信息,这就需要对HTTP进行抓包(获取到请求和响应的相关数据),下面介绍一下如何进行HTTP的抓包


🍒1.2 Fiddler(抓包工具)


Fiddler 下载地址: https://www.telerik.com/fiddler/

f78da87e42954b0fbedc2834572613a3.png


● 下载之后就正常点击安装就可以

● 安装完成后双击打开,我们先更改设置这样我们就能够捕捉到HTTPS协议的包,点击左上角Tools->点击Options->

8ced653218fb4fccbf494f3e503f1155.png

● 点击HTTPS将里面的内容全部勾选

a06d8f4f4e8f4f56835a57a1c2ee4a20.png

勾选点击OK后会弹出,我们点击YES 后 再点击再单击 ”是“ 再点击”同意安装“,这个一定要安装,这个是Fiddler抓包工具的证书,没有安装证书是不会获取到HTTPS协议的包


5f638fe193ac4d90a5385b21276e2eec.png

● 安装好整数之后我们点击左边就可以看到我们获取到的HTTP和HTTPS协议的包


02e3c28cd75946e3b716d9b7e1f7fefb.png

● 我们双击一个获取的协议包,在点击Raw就可以在右边看到包里的请求和相应内容

image.png

● 点击View in Noyepad 就可以看到文本内容


4cf14093ae8a4e24b4398368480f4dfa.png

6b2279691d7c4bf58edfe740b0f59397.png

如果我们看到乱码不要担心是系统BUG,这其实是在传输过程中数据压缩之后的结果


fa4efd7b6f9b4b8490ad9d5de2be34ba.png


以上就是我们根据抓包工具就可以在我们开发的过程中进行调试来解决BUG


🍎二.HTTP协议格式

🍒2.1HTTP请求

🍉2.1.1 HTTP请求格式


91c0e1aa35264161b4f6c68a4a0b410d.png

一.请求行(首行),包含三个部分


● HTTP方法:大概描述了这个请求想要干什么
● URL:描述了想要访问的网络资源具体在哪
● 版本号,HTTP/1.1表示当前使用 HTTP1.1版本


二.请求报头


● 包含很多行,每一行都有一个键值对,键值对之间用空格来分割


三.空行


● 相当于结束标记,类使于链表的null


四.请求正文(body)


● 可选的,不一定每个HTTP协议都有


我们就拿Fiddler(抓包工具)来进行逐步了解


86141543f7e8405a90d09f9376e8b41c.png


f79d8a901ee44e16892c7c8333a4c1c9.png

🍉2.1.2 HTTP请求格式URL


URL:含义就是”网络上唯一的资源地址符“


1eb2cadb854e4d3ea72937873a5f4b68.png



协议方案名:必选项,使用 http 或https等协议方案名获取访问资源时要指定协议类型。不区分字母大小写,最后附一个冒号:,使用//与后面的字段分隔。

也可使用 jdbc:mysql:// 或 javascript: //这类jdbc程序或脚本程序的方案名。


登录信息:可选项,这是很早时期上网的时候,在这里会体现出账号与密码,现在基本上没有了,使用@符号与后面的字段分隔。


服务器地址:必选项,可以使用域名和IP地址来表示,使用:与端口号分隔。


端口号:可选项,表示访问主机上哪一个应用程序,该字段为空,浏览器会分配默认的端口号,http是80,https是443。


文件路径:必选项,描述访问服务器的资源是什么,最简单的路径就是一个/,你访问很多网站的首页的时候,最后都会有一个/,使用?与查询字符串分隔。


查询字符串:可选项,表示浏览器或者客户端传给服务器自定义的信息,对获取的资源提出进一步的要求,一般是程序员自定义,所以如果不是你自己写的,大概率看不懂,使用&进行查询字符串分割,使用#与片段标识符分隔。


片段标识符:可选项,表示访问页面的子位置,能够控制浏览器滚动到某一位置。


HTTP 协议使用 URI 定位互联网上的资源。正是因为 URI 的特定功能,在互联网上任意位置的资源都能访问到。


URL:小结

● IP地址

● 端口号(可有)

● 带层次结构的路径

● query string 查询字符串


URL encode / decode

如果查询字符串(query string)的内容包含一些具有特定含义的字符需要进行转义,如/,?,&等,如果含有这些字符,会将这些字符替换为%+字符的ASCII码,这个过程就是encode,反过来将这些转义的字符串解析为原来的字符,这个过程就是decode,不仅仅是特殊符号,也有可能是汉字


比如,你在浏览器上搜索C++,在URL上就会得到C%2B%2B这样的字符串


40e22be91e494924bc3b050eb043bbc0.png

相关文章
|
12天前
|
域名解析 存储 网络协议
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
本文详细介绍了IP协议报头结构及其各字段的功能,包括版本、首部长度、服务类型、总长度、标识、片偏移、标志、生存时间(TTL)、协议、首部检验和等内容。此外,还探讨了IP地址的网段划分、特殊IP地址的应用场景,以及路由选择的大致流程。最后,文章简要介绍了DNS协议的作用及其发展历史,解释了域名解析系统的工作原理。
48 5
深入解析网络通信关键要素:IP 协议、DNS 及相关技术
|
9天前
|
监控 安全 搜索推荐
设置 HTTPS 协议以确保数据传输的安全性
设置 HTTPS 协议以确保数据传输的安全性
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
用MASM32按Time Protocol(RFC868)协议编写网络对时程序中的一些有用的函数代码
|
14天前
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
134 73
|
2天前
|
域名解析 存储 安全
HTTP【网络】
HTTP协议格式、HTTP的方法 、HTTP的状态码、HTTP常见的Header
15 6
HTTP【网络】
|
7天前
|
安全 网络协议 网络安全
在实现HTTPS时,有哪些常见的安全协议
在实现HTTPS时,有哪些常见的安全协议
|
12天前
|
监控 网络协议 网络性能优化
如何办理支持UDP协议的网络
在当今网络环境中,UDP(用户数据报协议)因传输速度快、延迟低而广泛应用于在线游戏、视频流媒体、VoIP等实时服务。本文详细介绍了办理支持UDP协议网络的方法,包括了解UDP应用场景、选择合适的ISP及网络套餐、购买支持UDP的设备并进行优化设置,以及解决常见问题的策略,帮助用户确保网络稳定性和速度满足实际需求。
|
7天前
|
前端开发 JavaScript 安全
深入解析 http 协议
HTTP(超文本传输协议)不仅用于传输文本,还支持图片、音频和视频等多种类型的数据。当前广泛使用的版本为 HTTP/1.1。HTTPS 可视为 HTTP 的安全增强版,主要区别在于添加了加密层。HTTP 请求和响应均遵循固定格式,包括请求行/状态行、请求/响应头、空行及消息主体。URL(统一资源定位符)用于标识网络上的资源,其格式包含协议、域名、路径等信息。此外,HTTP 报头提供了附加信息,帮助客户端和服务端更好地处理请求与响应。状态码则用于指示请求结果,如 200 表示成功,404 表示未找到,500 表示服务器内部错误等。
14 0
深入解析 http 协议
|
11天前
|
网络协议 网络安全 网络架构
分布式基础-网络通信协议讲解
分布式基础-网络通信协议讲解
分布式基础-网络通信协议讲解
|
15天前
|
数据采集 JSON API
🎓Python网络请求新手指南:requests库带你轻松玩转HTTP协议
本文介绍Python网络编程中不可或缺的HTTP协议基础,并以requests库为例,详细讲解如何执行GET与POST请求、处理响应及自定义请求头等操作。通过简洁易懂的代码示例,帮助初学者快速掌握网络爬虫与API开发所需的关键技能。无论是安装配置还是会话管理,requests库均提供了强大而直观的接口,助力读者轻松应对各类网络编程任务。
59 3
下一篇
无影云桌面