HTTP协议

今日摘录

莫听穿林打叶声,何妨吟啸且徐行。
在这里插入图片描述

前言

HTTP是应用层中最广泛使用的协议之一,HTTP基于传输层的TCP协议,用于浏览器和web服务器之间进行交互。

浏览器将符合HTTP协议格式的数据填入传输层的socket 发给服务器,服务器进行响应。下面具体介绍:

抓包工具(fiddler)

可以抓包的工具有很多,这里咱们使用的是fiddler。看官可以直接从以下链接中进行下载:

链接:https://pan.baidu.com/s/1rtOYkIaAdHsHLHfj_-NxLw 
提取码:2222

需要注意的是fiddler本质上是一个代理程序,在使用fiddler时需要关闭其他代理程序和浏览器上的代理插件。尤其是电脑上下载了easyconnect,这个软件需要删除。

这里简单提一下:代理分为两种,正向代理和反向代理。代表客户端的代理就是正向代理,代表服务器端的代理就是反向代理。

下面通过抓包工具抓个包来具体学习HTTP协议。

HTTP协议

在HTTP中有http请求和http响应,以下分别介绍:

一. HTTP请求

这是一个HTTP请求报文,由下图可以知道HTTP协议是一个行文本协议。
在这里插入图片描述看报文首行:
在这里插入图片描述首行报文有三个内容,分别是HTTP方法URLHTTP版本

1. 什么是URL

URL是唯一资源定位符,俗称网址。

URL最关键的有以下几个部分:
协议名:// 服务器地址(ip地址): 端口号 / 带层次的文件路径 ?查询字符串。
在上面搜狗的URL中,省略了端口号和查询字符串,‘/’ 代表的是根目录。

  1. 当省略了端口号时,浏览器会根据协议名提供一个默认端口号。如果是HTTP则默认端口号是80,如果是HTTPS则默认端口号是443
  2. / 代表的是HTTP服务器根目录,HTTP服务器是系统中的一个进程,系统会给HTTP服务器一个特定的目录交给HTTP服务器进行管理。该目录中的资源都可以供用户进行访问。具体HTTP服务器的根目录是哪个目录要看服务器的配置
  1. https://mp.csdn.net/mp_blog/manage/article?spm=1010.2135.3001.5448在这个RUL中包括了:
  2. 协议名:https
  3. 服务器地址: mp.csdn.net
  4. 带层次的路径:/mp_blog/manage/article 表示根目录下的mp_blog目录下的manage目录中的article文件。
  5. 查询字符串(query string): spm=1010.2135.3001.5448。查询字符串通常以键值对的形式出现,多个键值对用&符号隔开。

注意:
查询字符串(query string)中有些字符是有特殊意义的(如?/ :中文等),对于这些字符不能直接出现在query string 中,需要进行重新编码才能被浏览器正确识别。重新编码时使用的编码方式时urlencode,解码时用urldecode

2. 什么是HTTP方法

HTTP方法描述了这次请求要干什么,对于不同的操作类型有不同的HTTP方法,常见的HTTP方法中包括了以下几个:

  • GET: 从服务器获取资源
  • POST: 向服务器提交数据,用于创建新资源。
  • PUT: 向服务器提交数据,用于创建或更新新资源。
  • DELETE: 请求服务器删除指定的资源。
    - PATCH:对资源进行部分修改
  • HEAD:类似于GET,但只返回头部信息。
  • OPTIONS: 获取目标资源支持的通信方法

天下HTTP方法十斗,GET占八斗,POST独占一斗,剩余方法共占一斗。日常绝大多数见到的都是get方法和post方法,所以这里主要介绍这两个方法。

需要注意的是,虽然对于不同的操作类型都有不同的HTTP方法,但是实际上这些不同方法的语义仅仅只有参考价值。例如:在一些环境中,get方法可以代替POST方法。

(1)GET请求

以下四种行为都能触发GET请求:

  1. 在浏览器地址栏中直接输入url
  2. 在执行html代码时的link,script,img,a等标签
  3. 用from标签构造get请求
  4. 用js构造get请求(ajax:异步的JavaScript和xml)

接下来我们看一下get请求的报文:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

With Order @!147

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值