HTTP理论—2

1.urlencode(编码) 和 urldecode(解码)

在url之中并,有一些特殊的符号,比如 / ? 等都已经被当做特殊意义理解了,因此这些字符不能够随意出现。

如果某个参数之中,需要这些特殊字符,就必须对这些特殊字符进行转义

转义规则:将需要转码的字符转为16进制,然后从有右往左,取4位(不足4位直接处理),每两位做一位,在前面加上%,编码成XY的格式

image-20210527184905250

2.HTTP协议格式

2.1HTTP请求

1.首行:方法 + url(资源所在路径) + 版本 (以行为读取单位,即\n为标识)

常见的方法有GET和POST方法:

在这里插入图片描述

2.请求报头(header):请求的属性,冒号分割的键值对,每组属性之间使用\n分隔,遇到空行标识header部分结束

3.空行:将报头和有效载荷分离开来

4.请求正文(body):空行后面的内容都是请求正文,如果请求正文存在,则在header之中会有一个Content-Length属性来标识body的长度

2.2HTTP响应

1.首行:版本号 + 状态码(200/404) + 状态码解释(ok)

2.响应报头(header):请求的属性,冒号分割的键值对,每组属性之间使用\n分隔,遇到空行标识header部分结束

3.空行:将报头和有效载荷分离开来

3.响应正文(body):空行后面的内容都是请求正文,如果请求正文存在,则在header之中会有一个Content-Length属性来标识body的长度

image-20210528082157078

3.HTTP的状态码

类别原因短语例子
1xxInformational(信息性状态码)接受的请求正在处理中请求周期比较长的
2xxSuccess(成功状态码)请求正常处理完毕返回状态码200,表示请求正常
3xxRedirection(重定向状态码)需要进行附加操作以完成请求登录A网址 跳转->B网站
4xxClient Error (客户端错误状态码)服务器无法处理请求400/401/403/404 客户端要的资源服务器找不到(不合理的要求)
5xxServer Errot(服务器错误状态码)服务器处理请求出错比如,短时间内创建大量进程,导致服务器宕机

4.HTTP常见Header

常见Header扩展解释
Content-Type:数据类型(text/html等)通常是response(响应)方携带
Content-Length:正文(Body)的长度request、response都有可能携带
Host:客户端告知服务器, 所请求的资源是在哪个主机的哪个端口上request携带
User-Agent:声明用户的操作系统浏览器版本信息识别爬虫,就是通过识别是否有Usser-Agent。用游览器访问网页是正常访问,自己写的程序就是爬虫
referer:当前页面是从哪个页面跳转过来的
location:搭配3xx状态码使用, 告诉客户端接下来要去哪里访问将状态码写入response之中,客户端接收到之后,就可以知晓跳到哪里去
Cookie:用于在客户端存储少量的信息,通常用于实现会话(session)功能

5.HTTP基本特征

1.无连接的:

http底层是基于tcp的,但是http不关心底层的实现,一旦tcp建立链接成功,不需要http再次进行链接的建立。tcp建立链接和http无关,http直接向对方直接发送 http request即可

2.无状态的:

tcp本身是有状态的,与http无关。

http并不会记录用户的任何信息,只会接受请求与响应(request <-> response),记录信息的计数为 cookie + session

3.简单快速:

短链接(一来一回就断开)进行文本(网址、图片、音频)传输

早期http/1.0版本只有短链接 http/1.1版本具有长链接

HTTP的方法

方法说明支持HTTP协议版本
GET获取资源:从服务器获取资源(文本、网页、图片等等)1.0、1.1
POST传输实体主体1.0、1.1
PUT传输文件(往服务器传文件,比如百度云盘)1.0、1.1
HEAD获得报文首部(除了正文,其余的都要)1.0、1.1
DELETE删除文件1.0、1.1
OPTIONS询问支持方法1.1
TRACE追踪路径1.1
CONNECT要求用隧道协议连接代理1.1
LINK建立和资源之间的联系1.0
UNLINE断开连接关系1.0

6.Cookie

6.1为什么需要cookie

http是无状态的,比如用户登录一个网址去看电影,看完一部电影之后,想接着看第二部,由于http是无状态的,这时就需要再次输入账号和密码进行登录。http这种无状态的特征会给用户造成非常差的体验感

cookie就是游览器中的一个文件,这个文件分为内存级和硬盘级(写在本地文件中,比如保存密码)

在客户端第一次访问服务器的时候,填写了账号和密码进行了登录,服务器在响应的同时会将账号和密码写入cookie之中,那么客户在下次访问的时候,cookie会自动提交,服务器自动解析cookie之中的内容,这样就不要多次填写登录信息了

image-20210527201540663

6.2cookie安全问题的解决(相对解决)

cookie直接存储在本地文件之中,是很不安全的。当电脑中毒之后,盗窃人员直接粘贴cookie就可以直接得到对方的账号和密码

image-20210527203031277

image-20210528101236104

7.应用层抓包工具fiddler

7.1抓包原理

image-20210528082521216

7.2使用演示

image-20210528084949587

7.3通过linux命令行获取响应信息

image-20210528090311815

7.4wget

image-20210528095738476

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Postman是一个流行的API开发和测试工具,它可以帮助开发人员在开发和测试API时进行快速、高效的工作。下面是一些Postman的基础理论: 1. 请求和响应:在Postman中,您可以发送HTTP请求并获取服务器返回的响应。请求通常包括URLHTTP方法(如GET、POST等)、请求头、请求体等信息,而响应则包括状态码、响应头、响应体等信息。 2. 环境变量:Postman允许您创建和使用环境变量,这些变量可以用于存储和共享请求中的数据。您可以在请求的URL、请求头、请求体等地方使用环境变量,以便根据需要动态更改请求信息。 3. 集合和请求:Postman中的集合是一组相关的请求的组织方式。您可以在集合中创建多个请求,并按需求对其进行排序和分组。这样可以更好地管理和组织您的API测试和开发工作。 4. 测试脚本:Postman提供了一个强大的测试脚本功能,您可以使用JavaScript编写自定义的测试脚本来验证API的响应。测试脚本可以检查响应的状态码、响应头、响应体等,并根据需要执行各种断言和验证操作。 5. 协作和共享:Postman还提供了协作和共享功能,可以方便团队协作和共享API集合。您可以将集合导出为文件,并与团队成员共享,或者使用Postman提供的云服务进行协作和共享。 这些是Postman的基础理论,希望对您有所帮助!如果您有更多关于Postman的问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值