无论是webservice和rest做大型架构都离不开http协议的认识
- webservice = http协议 + XML
- Rest = http协议 + json
我也不知到这是啥玩意
1. 什么是协议
协议就是一种约定和标准,既然是协议,对象一定有两个。
计算机之间有ftp,http,stmp pop,tcp/ip协议
2. 什么是http协议
http协议就是请求信息和响应信息的格式。
开始客户端和web服务器之间没有任何联系,所以我们需要将这两个对象进行建立连接
如何建立连接呢?这里就需要通信线路,路由器进行交换,这时候就建立连接了,发送请求,然后沿着线路返回响应信息,这时候客户端收到响应html代码,解释出图片文字等等
响应完毕之后,客户端与web服务器之间又再次断开连接
新建一个PHP文件,然后使用chrome浏览器打开这个文件进行刷新
echo "hello"
3. 请求数据的格式
主要有三种
- 请求行
- 请求头信息
- 请求主体信息
请求行:
请求方法、请求资源路径、所用协议
请求方法:
GET,POST, PUT, DELETE,TRACE,OPTIONS
我们要记住不是只有浏览器才能发http协议,只要满足http协议的东西都能发
这里就用cmd内置telnet客户端模拟http请求:
- 先使用
ipconfig
命令查看IP地址 - 使用telnet IP地址 80
这是端口的概念:
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部或交换机路由器内的端口,不可见。例如计算机中的80端口、21端口、23端口等。
- 然后按住CTRL+ ]回显功能,已经连接到80端口
请求行
GET:请求方式
10606/01.php:请求资源
http/1.1:请求协议版本
HOST: localhost 头部信息
当头信息结束后有一个空行,头信息和主体信息需要这个空行做区分,即使没有主体信息空行也不可以少。
响应行
响应行:协议版本 状态码 状态文字
响应头信息
key: value
key: value
contente-length:接下来主体的长度
【测试】使用POST方法
POST 10606/02.php HTTP/1.1
HOST: localhost
username = zhangsan
没有发送username = zhangsan直接就结束了,所以我们需要在头部加点东西,要加上主体长度
POST 10606/02.php HTTP/1.1
HOST: localhost
contect-length: 24
username = zhangsan&age=23
POST比GET多了主体信息,头信息中要标明主体长度,但是服务器仍然没有接收到信息因为POST时候要告诉服务器content-type:application/x-www-from-urlencoded
POST 10606/02.php HTTP/1.1
HOST: localhost
content-type:application/x-www-from-urlencoded
contect-length: 24
username = zhangsan&age=23
今天的分享就到此结束
md这goujb真难学的
好费劲