计算机网络【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

相关文章
|
15天前
|
缓存 网络协议 前端开发
Web 性能优化|了解 HTTP 协议后才能理解的预加载
本文旨在探讨和分享多种预加载技术及其在提升网站性能、优化用户体验方面的应用。
Web 性能优化|了解 HTTP 协议后才能理解的预加载
|
21天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验
92 28
|
19天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
141 25
|
22天前
|
XML JSON 前端开发
HTTP协议,Content-Type格式介绍篇
通过理解和正确使用Content-Type头字段,可以确保数据在网络上传输时的正确性和高效性,提升网络应用的可靠性和用户体验。
194 18
|
2月前
|
域名解析 缓存 网络协议
Web基础与HTTP协议
通过掌握这些基础知识和技术,开发者可以更加高效地构建和优化Web应用,提供更好的用户体验和系统性能。
79 15
|
2月前
|
前端开发 网络协议 安全
【网络原理】——HTTP协议、fiddler抓包
HTTP超文本传输,HTML,fiddler抓包,URL,urlencode,HTTP首行方法,GET方法,POST方法
|
2月前
|
存储 JSON 缓存
【网络原理】——HTTP请求头中的属性
HTTP请求头,HOST、Content-Agent、Content-Type、User-Agent、Referer、Cookie。
|
2月前
|
JSON Dart 前端开发
鸿蒙应用开发从入门到入行 - 篇7:http网络请求
在本篇文章里,您将掌握鸿蒙开发工具DevEco的基本使用、ArkUI里的基础组件,并通过制作一个简单界面掌握使用
81 8
|
2月前
|
数据采集 安全 搜索推荐
HTTP代理IP纯净度 提升用户网络体验的核心竞争力
随着互联网发展,使用HTTP动态代理IP的需求日益增加。高纯净度的代理IP在隐私与安全、网络体验和业务运营方面至关重要。它能保护用户信息、提高数据安全性、确保访问速度和连接稳定,并提升业务效率与信誉度。
54 2
|
2月前
|
网络协议 安全 网络安全
探索网络模型与协议:从OSI到HTTPs的原理解析
OSI七层网络模型和TCP/IP四层模型是理解和设计计算机网络的框架。OSI模型包括物理层、数据链路层、网络层、传输层、会话层、表示层和应用层,而TCP/IP模型则简化为链路层、网络层、传输层和 HTTPS协议基于HTTP并通过TLS/SSL加密数据,确保安全传输。其连接过程涉及TCP三次握手、SSL证书验证、对称密钥交换等步骤,以保障通信的安全性和完整性。数字信封技术使用非对称加密和数字证书确保数据的机密性和身份认证。 浏览器通过Https访问网站的过程包括输入网址、DNS解析、建立TCP连接、发送HTTPS请求、接收响应、验证证书和解析网页内容等步骤,确保用户与服务器之间的安全通信。
125 3