HTTP协议,带你了解HTTP协议

目录

1、HTTP 协议介绍

2、HTTP 协议的工作过程

HTTP 协议的工作过程可以分为以下几个步骤:

3、Fiddler 抓包工具介绍

3.1 抓包工具的使用

3.2 抓包结果

3.3 抓包工具原理

4、HTTP 协议格式总览

5、HTTP 请求(Request)

5.1 认识 URL

5.2 认识“方法”(method)

GET 方法:

POST 方法:

GET 和 POST 的区别:

关于 GET 请求的 URL 长度问题的误解:

关于 POST 比 GET 更安全的误解:

关于 GET 只能传输文本数据的误解:

5.3 认识请求“报头”(header)

6、 HTTP 响应(Response)

6.1 认识“状态码”(status code)

6.2 认识响应“报头”(header)

7、 通过 form 表单构造 HTTP 请求

7.1 发送 GET 请求

总结·


1、HTTP 协议介绍

HTTP(HyperText Transfer Protocol)是一种用于传输超文本的协议,是互联网上应用最为广泛的协议之一。HTTP 协议是基于客户端-服务器模式工作的,客户端向服务器发送请求,服务器返回响应。HTTP 协议是无状态的,也就是说服务器不会记录客户端的状态信息,每次请求都是独立的。

2、HTTP 协议的工作过程

HTTP 协议的工作过程可以分为以下几个步骤:

1. 客户端向服务器发送请求。
2. 服务器接收到请求后,根据请求的 URL 和请求方法(GET、POST 等)来处理请求。
3. 服务器处理请求后,返回响应给客户端。
4. 客户端接收到响应后,根据响应状态码和响应内容来处理响应。

3、Fiddler 抓包工具介绍

Fiddler 是一款免费的抓包工具,可以用来捕获 HTTP 和 HTTPS 流量。Fiddler 可以帮助开发人员和测试人员分析和调试网络应用程序,也可以用来查看网络请求和响应的详细信息。

3.1 抓包工具的使用

使用 Fiddler 抓包工具可以分为以下几个步骤:

1. 下载并安装 Fiddler 抓包工具。
2. 打开 Fiddler 抓包工具,点击“启动”按钮。
3. 在浏览器中访问需要抓包的网站。
4. 在 Fiddler 工具中查看抓包结果。

3.2 抓包结果

Fiddler 抓包工具可以显示请求和响应的详细信息,包括请求方法、URL、请求头、请求体、响应状态码、响应头、响应体等。

3.3 抓包工具原理

Fiddler 抓包工具的原理是通过代理服务器来捕获网络流量。当客户端发送请求时,请求会先经过 Fiddler 代理服务器,然后再转发给目标服务器。服务器返回响应时,响应也会经过 Fiddler 代理服务器,然后再返回给客户端。因此,Fiddler 抓包工具可以捕获客户端和服务器之间的所有网络流量。

4、HTTP 协议格式总览

HTTP 协议的格式可以分为请求格式和响应格式两种。请求格式由请求行、请求头和请求体组成,响应格式由状态行、响应头和响应体组成。

请求格式:


请求行
请求头
请求体
 

响应格式:


状态行
响应头
响应体
 

5、HTTP 请求(Request)

HTTP 请求由请求行、请求头和请求体组成。

5.1 认识 URL

URL(Uniform Resource Locator)是统一资源定位符的缩写,用于标识互联网上的资源。URL 包含协议、主机名、端口号、路径和查询参数等信息。

URL 基本介绍:


协议://主机名:端口号/路径?查询参数
 

URL 基本格式:


http://www.example.com/index.html?name=张三&age=18
 

URL 参数介绍:

URL 参数是指在 URL 中通过查询字符串传递的参数,格式为“key=value”,多个参数之间用“&”符号分隔。

URLencode 介绍:

URLencode 是一种将 URL 中的特殊字符转换为 ASCII 码的编码方式,以便于在 URL 中传递。例如,空格会被转换为“%20”,中文会被转换为“%E4%BD%A0%E5%A5%BD”。

5.2 认识“方法”(method)

HTTP 请求方法是指客户端向服务器发送请求时所使用的方法,常见的方法有 GET 和 POST。

GET 方法:

GET 方法用于请求指定的页面或资源,并返回响应。GET 方法的请求参数会附加在 URL 后面,以“?”符号分隔。例如:


GET /index.html?name=张三&age=18 HTTP/1.1
Host: www.example.com
 

POST 方法:

POST 方法用于向服务器提交数据,并返回响应。POST 方法的请求参数会包含在请求体中,而不是附加在 URL 后面。例如:


POST /login HTTP/1.1
Host: www.example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 23

name=张三&age=18
 

GET 和 POST 的区别:

GET 方法和 POST 方法的区别在于请求参数的传递方式不同。GET 方法的请求参数会附加在 URL 后面,而 POST 方法的请求参数会包含在请求体中。因此,GET 方法适合传输少量的数据,而 POST 方法适合传输大量的数据。

关于 GET 请求的 URL 长度问题的误解:

有些人认为 GET 请求的 URL 长度有限制,实际上这是一个误解。HTTP 协议并没有规定 GET 请求的 URL 长度有限制,而是浏览器和服务器对 URL 长度进行了限制。不同的浏览器和服务器对 URL 长度的限制也不同,一般来说,URL 长度不应超过 2048 个字符。

关于 POST 比 GET 更安全的误解:

有些人认为 POST 方法比 GET 方法更安全,实际上这也是一个误解。POST 方法和 GET 方法一样,都是明文传输数据,只是请求参数的传递方式不同。如果需要保证数据的安全性,可以使用 HTTPS 协议来加密传输数据。

关于 GET 只能传输文本数据的误解:

有些人认为 GET 方法只能传输文本数据,实际上这也是一个误解。GET 方法和 POST 方法一样,都可以传输任意类型的数据,只是请求参数的传递方式不同。

其它方法:

除了 GET 方法和 POST 方法,HTTP 协议还定义了其它一些方法,例如 PUT、DELETE、HEAD、OPTIONS 等。这些方法的使用场景不同,可以根据具体的需求来选择使用。

5.3 认识请求“报头”(header)

HTTP 请求头是指客户端向服务器发送请求时所附带的信息,常见的请求头有 Host、Content-Length、Content-Type、User-Agent、Referer、Cookie 等。

Host:

Host 请求头用于指定请求的主机名和端口号,格式为“Host: 主机名:端口号”。

Content-Length:

Content-Length 请求头用于指定请求体的长度,格式为“Content-Length: 长度”。

Content-Type:

Content-Type 请求头用于指定请求体的类型,常见的类型有 application/x-www-form-urlencoded、multipart/form-data、application/json 等。

User-Agent(简称 UA):

User-Agent 请求头用于指定客户端的类型和版本号,常见的客户端有浏览器、爬虫、移动设备等。

Referer:

Referer 请求头用于指定请求的来源页面,常用于防盗链和统计分析。

Cookie:

Cookie 请求头用于指定客户端的会话标识,常用于实现用户登录和会话管理。

6、 HTTP 响应(Response)

HTTP 响应由状态行、响应头和响应体组成。

6.1 认识“状态码”(status code)

HTTP 响应状态码是指服务器返回响应时所附带的状态码,常见的状态码有 200 OK、404 Not Found、403 Forbidden、405 Method Not Allowed、500 Internal Server Error、504 Gateway Timeout、302 Move temporarily、301 Moved Permanently 等。

200 OK:

200 OK 表示请求成功,服务器返回了请求的资源。

404 Not Found:

404 Not Found 表示请求的资源不存在。

403 Forbidden:

403 Forbidden 表示请求被服务器拒绝,通常是因为客户端没有访问权限。

405 Method Not Allowed:

405 Method Not Allowed 表示请求方法不被允许,通常是因为客户端使用了不支持的请求方法。

500 Internal Server Error:

500 Internal Server Error 表示服务器内部错误,通常是因为服务器无法处理请求。

504 Gateway Timeout:

504 Gateway Timeout 表示网关超时,通常是因为服务器无法在规定的时间内返回响应。

302 Move temporarily:

302 Move temporarily 表示请求的资源已经被临时移动到了另一个 URL。

301 Moved Permanently:

301 Moved Permanently 表示请求的资源已经被永久移动到了另一个 URL。

6.2 认识响应“报头”(header)

HTTP 响应头是指服务器返回响应时所附带的信息,常见的响应头有 Content-Type 等。

Content-Type:

Content-Type 响应头用于指定响应体的类型,常见的类型有 text/html、application/json、image/jpeg 等。

7、 通过 form 表单构造 HTTP 请求

7.1 发送 GET 请求

通过 form 表单发送 GET 请求可以使用以下代码:


<form action="http://www.example.com/index.html" method="get">
  <input type="text" name="name" value="张三">
  <input type="text" name="age" value="18">
  <input type="submit" value="提交">

总结·

本文主要介绍了 HTTP 协议的基本概念和工作过程,以及 Fiddler 抓包工具的使用方法和原理。在 HTTP 请求中,介绍了 URL 的基本格式和参数,以及 GET 和 POST 方法的区别和常见误解。同时,还介绍了请求报头中常见的字段,如 Host、Content-Length、Content-Type、User-Agent、Referer 和 Cookie。在 HTTP 响应中,介绍了常见的状态码和响应报头中的 Content-Type 字段。最后,本文还介绍了如何通过 form 表单和 ajax 构造 HTTP 请求,包括发送 GET 和 POST 请求的方法。本文内容详实,适合初学者了解 HTTP 协议的基本知识和使用方法。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/30574.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C#中List<T>的排序相关的使用方法总结

C#中List<>的排序相关的使用方法 list的排序一般使用Sort和LINQ的Orderby方法&#xff0c;本文主要介绍其如何使用。 &#x1f32e;1.Sort和实现Comparable接口 此方式需要类去实现IComparable接口 public class OrderTest {[Test]public void OraderTest(){List<E…

MySQL优化--undo log和redo log的区别

首先我们需要知道两个概念 缓冲池&#xff08;buffer pool&#xff09;:主内存中的一个区域&#xff0c;里面可以缓存磁盘上经常操作的真实数据&#xff0c;在执行增删改查操作时&#xff0c;先操作缓冲池中的数据&#xff08;若缓冲池没有数据&#xff0c;则从磁盘加载并缓存…

(写自己语言的练手级应用)JSON(JavaScript Object Notation) 产生式(BNF)

写自己的开发语言时&#xff0c;很多人都会拿JSON当第一个练习对象 开源net json FJSON 解析工具https://dbrwe.blog.csdn.net/article/details/107611540?spm1001.2014.3001.5502 <json> :: <object> | <array> <object> :: "{" [ <me…

操作系统 复习-计算题

一. 计算题&#xff08;共5题&#xff0c;100分&#xff09; 1.(计算题) 假设有4个进程需要在单CPU上运行&#xff0c;它们的执行时间如下表所示&#xff1a; 进程ID执行时间P18P25P32P44 现在我们需要按照抢占式优先级调度算法来安排这些进程的执行顺序。其中&#xff0c;进…

python代码加密方案

为何要对代码加密&#xff1f; python的解释特性是将py编译为独有的二进制编码pyc 文件&#xff0c;然后对pyc中的指令进行解释执行&#xff0c;但是pyc的反编译却非常简单&#xff0c;可直接反编译为源码&#xff0c;当需要将产品发布到外部环境的时候&#xff0c;源码的保护尤…

基于机器学习的内容推荐算法及其心理学、社会学影响闲谈

基于机器学习的内容推荐算法目前在各类内容类APP中使用的非常普遍。在购物、时尚、新闻咨询、学习等领域&#xff0c;根据用户的喜好&#xff0c;进行较为精准的用户画像与内容推荐。此类算法不但可以较为准确的分析用户的特征&#xff0c;如年龄、性别等&#xff0c;还能通过长…

特征点Features2D类介绍

文章目录 Features2D类介绍1. cv::AgastFeatureDetector2. cv::AKAZE3. cv::BRISK4. cv::FastFeatureDetector5. cv::GFTTDetector6. cv::KAZE7. cv::MSER8. cv::SimpleBlobDetector9. cv::StarDetector10. cv::SIFT11. cv::SURF12. cv::FastFeatureDetector13. cv::AgastFeatu…

最喜爱的编程语言——Python

一、编程语言发展 编程语言&#xff08;programming language&#xff09;可以简单的理解为一种计算机和人都能识别的语言。一种能够让程序员准确地定义计算机所需数据的计算机语言&#xff0c;并精确地定义在不同情况下所应当采取的行动。 编程语言处在不断的发展和变化中&…

【c语言】 -- 详解数组篇

&#x1f4d5;博主介绍&#xff1a;目前大一正在学习c语言&#xff0c;数据结构&#xff0c;计算机网络。 c语言学习&#xff0c;是为了更好的学习其他的编程语言&#xff0c;C语言是母体语言&#xff0c;是人机交互接近底层的桥梁。 本章来学习数据的存储。 让我们开启c语言学…

考虑微网新能源经济消纳的共享储能优化配置(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

C#异步详解

异步编程是指在程序执行过程中&#xff0c;不需要等待某个操作完成&#xff0c;就可以继续执行后续的代码。比如我们开发了一个web页面中有一个上传文件功能&#xff0c;我们上传文件时使用异步操作&#xff0c;就不用等待文件的上传时间&#xff0c;可以先在网页上进行其他操作…

JAVA_HOME变量的详细配置(图文)

用到Java项目的时候&#xff0c;有时候要用到Java_home&#xff0c;这个需要在系统配置中配置一下。如何操作呢&#xff1f;以下为详细的图文步骤。 1&#xff09;打开环境变量的窗口 2&#xff09;打开新建系统变量 3&#xff09;编辑JAVA_HOME 在变量名后输入JAVA_HOME,找到…

Ui自动化测试如何上传文件

前言 实施UI自动化测试的时候&#xff0c;经常会遇见上传文件的操作&#xff0c;那么对于上传文件你知道几种方法呢&#xff1f;今天我们就总结一下几种常用的上传文件的方法&#xff0c;并分析一下每个方法的优点和缺点以及哪种方法效率&#xff0c;稳定性更高 被测HTML代码…

centos直接部署express

centos直接部署express 以下是在CentOS上部署Express应用程序的一般步骤&#xff1a; 1.安装Node.js 在CentOS系统上安装Node.js。可以使用以下命令安装Node.js&#xff1a; sudo yum install nodejs2.安装npm 安装完Node.js后&#xff0c;还需要安装npm&#xff08;Node.…

Python爬虫被封ip解决方案

在使用 Python 程序进行网络爬虫开发时&#xff0c;可能因以下原因导致被封 IP 或封禁爬虫程序&#xff1a; 1、频繁访问网站 爬虫程序可能会在很短的时间内访问网站很多次&#xff0c;从而对目标网站造成较大的负担和压力&#xff0c;这种行为容易引起目标网站的注意并被封禁…

数据结构-队列

数据结构之队列 队列的概念顺序队列循环队列 顺序循环队列的ADT定义1、简单结构体定义2、初始化3、队列的清空4、计算队列的长度5、判断队列是否为空6、插入新的元素7、元素的删除8、遍历输出队列内的所有元素 链队列的ADT定义1、链队列简单结构体定义2、初始化链队列3、判断链…

神秘的临时对象

下面的程序输出什么&#xff1f;为什么&#xff1f; 程序意图&#xff1a; 在 Test() 中以 0 作为参数调用 Test(int i) 将成员变量 mi 的初始值设置为 0 运行结果&#xff1a; 成员变量 mi 的值为随机值 构造函数是一个特殊的函数 是否可以直接调用&#xff1f; 是否可以…

LVS+KeepAlived高可用负载均衡集群

LVSKeepAlived高可用负载均衡集群 1. 高可用群集的相关知识1.普通群集2.高可用群集(HA)3.Keepalived及其工作原理4.Keepalived体系主要模块及其作用5.健康检查方式&#xff08;学名&#xff1a;探针&#xff09; 二、脑裂的形成和解决1.产生脑裂的常见原因及解决方法2.脑裂预防…

谈找工作线上途径

谈找工作 目录概述需求&#xff1a; 设计思路实现思路分析1.51job2.拉勾网 猎聘网站智联招聘网站后记 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0c;skip hardness,make a better result,wait…

新能源汽车保养vr仿真教学软件为职业培训带来新的思路和方法

电动车电池更换VR虚拟体验是一种利用VR虚拟现实技术实现对电动车电池更换进行模拟仿真演示和实操训练的虚拟仿真实验教学课件&#xff0c;相比传统教学模式&#xff0c;有效提高学生的实践能力和技能水平。 通过VR技术模拟现场&#xff0c;使培训人员可以身临其境滴观摩操作过程…