[HTTP协议]应用层的HTTP 协议介绍

目录

1.前言

2.使用fiddler抓包来观察HTTP协议格式

3.HTTP协议的基本格式

2.1请求

2,1.1首行

2.1.2请求头

2.1.3空行

2.2响应

2.2.1首行

2.2.2响应头 键值对

​编辑2.2.3空行

2.2.4载荷(响应正文)

3.认识URL

3.1关于URL encode


1.前言

我们在前面的博客中,简单的介绍了传输层,网络层,数据链路层等网络层的协议和相关概念,这些协议越往上越和我们编写程序的人息息相关,尤其是应用层和传输层,本篇博客,我将带领大家认识和了解应用层的重要协议--HTTP协议.HTTP又叫做超文本传输协议,所谓的超文本就是即可以是文件也可以是图片或者视频文字之类的. 也可以是HTML 或者CSS JS文件和文本传输只能是字符串不一样,超文本可以传输更多类型的数据.

2.使用fiddler抓包来观察HTTP协议格式

要使用fiddler,我们在一开始设置的时候要同意并且安装它的证书.它就可以自动抓包.使用fiddler的时候要注意不能在电脑上使用代理程序,如果有的话就要关闭这个代理程序,因为fiddler这个软件本身也是一个代理程序,如果使用其他的代理程序的话,就会造成冲突.

当我们打开一个网页以后,也会抓包.

3.HTTP协议的基本格式

  HTTP协议分为请求和响应,我们可以在fiddler中打开请求的文本来观察一下HTTP协议的请求

选中raw然后点击view in Notepad就可以以记事本的格式打开这个请求

接下来我们详细说明一下这些内容都分别代表什么含义:

2.1请求

一个请求分为四个部分 分别是

2,1.1首行

首行有三个部分 分别是 方法,url,版本号

2.1.2请求头

从第二行 一直到最后面 都是请求头

里面包含了很多键值对 一个键值对占一行,键和值的使用,用:来分割.此处的键值对都有哪些,是什么含义,都是HTTP协议规定的.

2.1.3空行

请求最下面就有一个空行,这个空行就可以结束标记

2.1.4正文

http 的载荷部分,有的http请求有 有的没有

2.2响应

http 的响应也分为四个部分 分别是

2.2.1首行

这里的首行也分为三个部分 使用空格来分隔

2.2.2响应头 键值对

2.2.3空行

中间这个空行

2.2.4载荷(响应正文)

响应的载荷是html

3.认识URL

url这个概念非常重要,不仅仅是在HTTP中使用,在jdbc中也使用过这个东西,它描述了一个网络上的资源位置是一个唯一资源定位符,比如 https://www.sogou,com/就是一个最简单的url

片段标识符是表示当前页面的某个部分,通过不同的片段表示可以完成页面内的跳转

综上所述  的IP地址 端口号 ,路径,查询字符串 就可以描述出一个网络资源了.

3.1关于URL encode

query string 力是自定义的键值对,在URL中,本身有些特殊符号具有特定的含义.如果query string中也包含有同样的符号,咋办? 如果直接写进去,可能就会使服务器 /游览器解析失败 最靠谱的就是使用转义字符

对于汉字 也是需要转义的. 因为如果汉字的utf8 或者 gbk等编码的值和ascii的码一致 ,就麻烦了

此处是C%2B%2B本来是我们输入的C++,  我们在ascii中拿出来,使用16进制表示,并且加上 % 

这里的urlencode编码是非常重要的,实际开发中,在构造一个url的时候 ,尤其url 的 query string 中要包含有中文的时候,无比要进行编码

比如我们在游览器中输入一个你好.然后复制一下上面的网络路径  

我们将你好这个输入到码表中

我们可以看到.转码后的和我们输入的一模一样.证明了该游览器对中文进行了转码

  • 20
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王尔政

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

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

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

打赏作者

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

抵扣说明:

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

余额充值