http状态码实验

2020-05-19  本文已影响0人  AndyDennisRob

curl命令
开放的 GitHub API
github API

本篇文章的测试GitHub接口部分结合上面的资料展开,在CentOs 5.7 64位的机子上演示。后面的例子由于笔者暂时找不到好的网站地址,只好自己搭建网站了。然后使用api post 去调用接口。后面部分主要根据笔者的日常使用经验。

2XX

curl -s -i  https://api.github.com | grep status

-i 表示 输出时包括protocol头信息
-s 表示 静默模式
grep status 用于查找文件里符合条件的字符串
这里是Linux的管道用法,可以用来过滤


200

我们也可以看得详细一点


200


4XX

curl -i -u iZwz99inw692vbuwtngjf9Z  -X POST https://api.github.com/gists

-u 指定用户名
-X 制定请求方式

401
这里返回401代表当前用户没有访问权限~~~


404也很常见.
404

403:
这里给大家推荐一个免费软件APIpost,这里笔者没收它的广告费哦,完全是觉得它好用。
然后访问的是笔者的gitee私有仓库,很明显就是403错误了。
对资源的访问遭到gitee服务器的拒绝。

403


3XX

这个例子使用nodejs的一个框架Express 来搭建.

//nodejs代码
var http = require('http');

var server = http.createServer(function (req, res) {
  res.writeHead(301, {'Location': 'http://baidu.com/'});
  console.log(res._header);
  res.end();
});

server.listen(8080);
console.log("server start at http://127.0.0.1:8080");
301

//nodejs代码
var http = require('http');

var server = http.createServer(function (req, res) {
  res.writeHead(302, {'Location': 'http://baidu.com/'});
  console.log(res._header);
  res.end();
});

server.listen(8080);
302




304:告诉客户端,所请求的内容距离上次访问并没有变化. 客户端可以直接从浏览器缓存里获取该资源.
在第一次请求服务器的时候在获取资源之后是会先把该资源缓存在本地的,同时服务器response返回了一个响应头ETag,ETag全称Entity Tag,用来标识一个资源。在具体的实现中,ETag可以是资源的hash值,也可以是一个内部维护的版本号。

304

要想不是304,可以禁用浏览器缓存.


200


5XX

500的错误十分常见,比如程序员一不小心就写就给用户留下浓墨重彩的一笔—— "服务器内部错误"!

这里我故意来一把运行时错误.


divided by zero 500

几个小工具

上一篇 下一篇

猜你喜欢

热点阅读