postman访问服务器没响应怎么处理,Postman02-HTTP请求与响应

[TOC]

### HTTP 协议介绍

HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是一个属于`应用层`的面向对象的传输协议。

HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。WEB服务器根据接收到的请求后,向客户端发送响应信息。

总结:HTTP消息是一种特别常用的客户端与服务器之间交换数据的方式

![](https://box.kancloud.cn/554ec3f18ad5512219b8a48f19578b53_592x195.jpg)

**特点:**

- 无连接:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接

- 无状态:每个请求都是独立的,不会自动记忆状态。聪明的人们,为了解决对话能保持状态,使用了session与cookie来解决。

### HTTP 请求的组成

如果学习过Fiddler的朋友,可以抓一下前面一节中的简单GET与POST请求,在Inspector的raw窗口下,可以看到如下信息:

GET请求中,body内容为空,参数主要放在url中。

![](https://box.kancloud.cn/cc6a198a881aa22438a2d802d8598a76_1263x304.jpg)

POST请求中,参数一般放在body中。

![](https://box.kancloud.cn/5ec6c4fd39a4d8d291f52fc7e43fca22_974x416.jpg)

通过上面两个请求,我们可以总结出,HTTP请求,主要有三部分组成

- 起始行:包含请求方法,请求地址

- 请求头headers:格式如key:value,主要用于传递客户端的特定配置信息

- 请求体body: post方法存储参数的位置

### Postman 发起一个API请求

创建一个请求,主要配置四部分

1.请求方法method;2.请求地址URL;3.请求头headers;4.请求体body

对应在Postman中的设置位置如

![](https://box.kancloud.cn/928bd9924586ba401c905e819866408f_607x341.jpg)

#### Method

在HTTP中的method有GET、HEAD、POST、PUT、DELETE、CONNECT、OPTIONS、TRACE,其中最常用的只有`GET`与`POST`

#### URL

点击按钮“Params”会展开参数编辑窗口,在窗口中填入的参数键值对,会自动拼接到URL参数中。直接写在URL中的参数,也会自动以键值对的形式显示在编辑窗口

#### Headers

HTTP通用的headers有一下内容:

![](https://box.kancloud.cn/b11bfa9ad10764a5a68ef307cb15ecc6_749x2013.jpg)

当然,我们可以添加任意名称的headers,在Postman中,不管是headers的key或者value,输入部分字符后都有“自动联想”提示,非常的好用!

#### Cookies

在Native APP中,提供了Cookie管理器。

![](https://box.kancloud.cn/8793febe7932a6bf4e7fec50d9657bb9_598x260.jpg)

>[info] 在客户端,发送请求时附带上cookie,一般用于**保持用户状态**。但是关键的cookie可不是客户端生成哦,而是服务端创建的。服务端会先创建一个会话Session,将SessionID作为cookie设置到客户端,在之后的一系列请求中只要带上SessionID,服务端则会认为这是同一个用户在访问了。

在cookie的使用中,有一个非常重要的规则,就是`Cookie不能跨域访问`。例如在B网站中不能使用访问A网站时生成的cookie。因此,在设置cookie时,需要先指定域名,然后设置cookie内容。

![](https://box.kancloud.cn/e34e3af8cf28611561ce5afb38953bde_698x228.jpg)

#### Body

在POST方法中,参数通常会设置在Body中。

*注意:参数值不会自动进行`URL-encoded`,如果想要某参数值URL-encoded,可以选择参数值字符串,右键选择“EncodeURIcomponent”即可*

在Body参数的格式上,有四种:“form-data”,“urlencoded”,“raw”,“binary”

当我们通过HTTP协议发送请求时,headers中携带的Content-Type会告诉服务器所传参数的类型,以便于服务器能正确解析请求参数。

![](https://box.kancloud.cn/cef3812df1bb123b1117a7d04d5d5d6a_607x272.jpg)

**“form-data"类型**,相当于"content-type": "multipart/form-data”

Form-data是默认的web表单数据传输的编码类型,这模拟了在网站上填写`表单`,并提交它。`既可以上传键值对,也可以上传文件`。

**“x-www-form-urlencoded”类型**,相当于"content-type": "application/x-www-form-urlencoded"

`只能上传键值对`,会将`表单`内的数据转换为键值对,并且自动对参数值进行`urlencode编码`。

![](https://box.kancloud.cn/8e821bfa9cf0d9913456d25891a99059_594x204.jpg)

**“raw”类型**,对应"content-type"可以是“text/plain”,"application/json","text/xml",或"text/html"

可以上传`任意格式的文本`,可以上传text、json、xml、html等

![](https://box.kancloud.cn/5c120b7202cd693f1c094ae0bd549a4a_607x219.jpg)

**“binary”类型**,相当于“Content-Type”:“application/octet-stream”

只可以上传`二进制数据`,通常用来上传文件

### HTTP 响应的组成

![](https://box.kancloud.cn/c8e3369bb7561e29f4fde9249f526ead_1259x252.jpg)

HTTP响应也主要有三部分组成

- 状态行

- 响应头headers

- 响应体body

对应Postman中的显示区域如:

![](https://box.kancloud.cn/87bf790dc9ac36042659394f0ee94da7_1091x467.jpg)

HTTP通用的响应headers有

![](https://box.kancloud.cn/aefd4e73910afecd2930c09711b1a9ff_751x2403.jpg)

### 课后学习要求

好好百度下HTTP协议。关键是要了解HTTP协议的特点、HTTP headers中各个配置的含义、HTTP的各种响应码的含义。


:-: ![](https://box.kancloud.cn/331f659e8e6cddb0d9f182e00e32803f_258x258.jpg)

***微信扫一扫,关注“python测试开发圈”,获取更多测试开发分享!***

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值