是时候写篇博客了,关于linux和http
2015-12-24 00:38
477 查看
是时候写篇博客了,关于linux和http
标题看起来好厉害啊23333 然而并没有只是找到了这么一个网站,叫做瀑布im,这是一个团队协作网站,有一个聊天机器人的接口。然后实战了一下,做了一个最简单的随机数的机器人。。
这个借口是像你提供的http服务器进行一次post,然后如果返回一个JSON字符串,就将JSON字符串中的text发送到聊天框里。在实际开始之前大概的搜索了一下,可以用php或者些别的什么东西,但是用node.js的话只需要node.js,而且配环境相当好配,所以选择了node.js。
(当然这么说不意味着我用其他语言进行过了hello world,只是看教程的说法和nodejs配起来的确没遇到什么麻烦而已。。)
这个过程中使用了Node.js,还有腾讯给高校学生的1块钱每月的服务器。。(相比之下阿里云10块钱真是贵)
从腾讯的服务器怎么用开始说吧233
之前折腾过一次我OpenWrt的路由器(虽然最后被我弄成砖了),所以对SSH和linux有了一个初步的了解(然而文件权限系统还是一窍不通)。在腾讯给的服务器上是全程用SSH对着那个黑框框用命令行操作的。(不过如果你给我个可视化的环境我就不会了。。。)
用到的软件:
PuTTY,用于登录服务器
WinSCP,用于把本地写好的程序上传下去(vi实在是用不惯,还是直接上传文件比较省劲一点)
NotePad++
chrome 抓包
node.js 虽然安装了windows版本,但是不知道为什么在本地可以运行的脚本到服务器上就不能运行了,所以在本地上的基本没用到。
其他的想不起来了,windows之类的吧233
从腾讯云说起
腾讯云的服务器为了安全是使用密钥登录的,并不需要密码,只需要用户名(然而我并不知道这到底有多么安全,这方面不是很懂)。在腾讯就可以生成一对公钥和密钥,不过得到的是一个无格式的文本文件,PuTTY是不认的,需要用
PuTTY自带的
PuTTYGEN转换成
*.ppk格式,然后在
PuTTY的
SSH-Auth里设置就可以了。po主一开始只下载了
PuTTY,没下载那个压缩包(压缩包里提供了
PuTTYGEN),一直在
PuTTY里直接导入的腾讯给的那个文件,被坑了好久才发现。。。。
做为linux初学者,腾讯提供的各种linux版本并不知道有什么区别,反正是要运行
node.js程序,我用到的区别只有包管理器的命令不同而已。。。。所以安了个CentOS(其实是有计算机专业的朋友学linux用的这个发行版,要是遇到了什么问题好问他)
然后就是linux相比于windows省劲多的地方了,有包管理器这么个东西存在。。。直接
yum install nodejs即可,
yum是CentOS中包管理的名字,这条命令的意思是安装
node.js,当然
node.js本身也有个包管理器叫做
num,也是需要
yum installation num安装的。不过我并没有用到。所以并不了解。
安装之后就可以运行了。输入命令(#是我linux的命令提示符)
# node
就会进入
node.js的交互环境。,使用的是
>符号,先运行个
hello world
> console.log(“hello world”);
他会输出
hello world
JS对单双引号和句末分号都不敏感,所以写不写都可以,但是同一个字符串前后的引号要匹配,也就是说
'string"和
"string'不会被识别成字符串。
(感觉好像python。。。)
也可以像python一样。把这句话放在一个
hello-world.js文件中,然后使用命令运行
# node hello-world.js
输出结果与前面是相同的。
现在开始正经的说说语言本身
因为我是前天才开始学的(虽然昨天写出来的程序就能跑了而且现在正在跑。。)所以其实语音本身我没有学到多少,学到的更多是一些更基本的东西,比如HTTP协议是怎么起作用的。。。首先需要一个服务端和服务端,由客户端向服务端发起一次请求,然后服务端才能返回给客户端一段数据。客户端给服务端发的请求有可能是带数据的
POST,或者是不带数据的简单的请求数据的
GET,比如我们要访问一个网页的时候就需要给服务器发送一个
GET请求,然后服务器会把网页发送回来。
这个接口要求我返回一个
JSON,实际上我返回的是一个HTTP数据包,数据包的head中有
Content-Type,这个量是告诉客户端,服务器发送的http数据包中的内容是什么内容,比如说有
text/html,表示数据包里传输的是html格式的网页。我的数据包定义的http头是
application/JSON,接口要求的就是这个格式,看这样子也不是很奇怪,估计协议里是这种数据类型的。
所以需要说说数JSON
JSON的定义在JSON的百度百科可以找到,但其实就是js中有一个方法可以简单的把js的对象转换成字符串(这个方法我一开始不知道,直接手写了这个字符串,然后各种出错……)比如原来
person=new Object();
person.firstname=”Bill”;
person.lastname=”Gates”;
person.age=56;
person.eyecolor=”blue”;
做为对象来说
person
{ firstname: ‘Bill’,
lastname: ‘Gates’,
age: 56,
eyecolor: ‘blue’ }
然后如果需要传递给另外的某个程序使用,不能直接发送person这个对象,需要转换成字符串,转换成的字符串是这样的
‘{“firstname”:”Bill”,
“lastname”:”Gates”,
“age”:56,
“eyecolor”:”blue”}’
可以看到,原来是
{key=value}
现在是
‘{“key”:value}’
信息没有丢失,转换成的字符串更加便于在不同的程序之间通信。
然后js自带的方法是
JSON.stringify(JsonObjects),返回的就是JSON字符串了。
然后是我从其他地方手抄来的代码。。。
先写到这里相关文章推荐
- Linux socket 初步
- RPC failed; result=22, HTTP code = 411
- linux lsof详解
- linux 文件权限
- Linux 执行数学运算
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断