webservice = http协议+xml
rest = http协议 + json
各种api 也一般是用http + xml/json 来实现的
做采集小偷站, 或者学习ajax 也要了解http 协议
计算机中的协议和现实中的协议是一样的, 一式双份或者多份
双方都遵循一个规范,这个规范就可以称之为协议
ftp http stmp pop tcp/ip 协议
http 请求信息和响应信息的格式
请求行
请求方法
GET
POST
HEAD
和 GET 基本一样, 只是不会返回内容(一般用作判断一个文件是否存在使用
比如:判断一个图片是 否还在服务服务器上,你只需要返回一个bool值就可以了)
PUT
DELETE
TRACE
是你使用了
代理上网,比如用
代理访问www.163.com 你想看看
代理有没有修改你的http请求,可以使用TRACE来测试一下,163.com的服务器会把最后收到的请求返回给你。
OPTIONS
是返回服务器可用的请求方法
请求路径
请求协议
请求头信息
请求主题信息
图形分析:
![](https://app.yinxiang.com/shard/s24/res/08803c42-a6a2-4d1e-821c-192f25ec3dc4/http.png?search=%E4%BB%A3%E7%90%86)
http 协议必须至鞥浏览器来发送吗? 不是的,http是一种协议,只要满足这种协议就可以发送
下面就利用telnet 发送一个请求:
telnet 192.168.1.117 80
GET /phpinfo.php HTTP/1.1
Host:localhost
连敲两下回车
![](https://app.yinxiang.com/shard/s24/res/4ecf43f5-385a-4997-92eb-cc8ea98ec4b9/telnet.png?search=%E4%BB%A3%E7%90%86)
![](https://app.yinxiang.com/shard/s24/res/cc8aaf0d-7de0-4c5d-81a0-85f86dd261c6/tel.png?search=%E4%BB%A3%E7%90%86)
Host:localhost
Content-length:23
name=lisi&age=18
回车 在 回车
![](https://app.yinxiang.com/shard/s24/res/61e06536-66eb-49b5-be77-13631f619f65/telpost.png?search=%E4%BB%A3%E7%90%86)
![](https://app.yinxiang.com/shard/s24/res/91715c5f-d22a-4adf-a0e0-82e6aad3ab6d/tel-p.png?search=%E4%BB%A3%E7%90%86)
i/o
cpu浮点运算
大访问量
cdn(把图片放到全国的各个cdn节点)
将多个http请求(js/css/img)合成一个keepalive
Host:localhost
回车 在 回车
![](https://app.yinxiang.com/shard/s24/res/c5076b30-c4fd-4fc2-aacf-c1ceb720a5a5/tel111111.png?search=%E4%BB%A3%E7%90%86)
===============================请求结束==================================
===============================响应信息==================================
1. 状态码, 状态文字
状态码系列:
1xx | 信息 | 接收请求, 继续处理 |
2xx | 成功 | 操作成功的收到, 理解和接收 |
3xx | 重定向 | 为了完成请求, 必须采取进一步措施 |
4xx | 客户端错误 | 请求的语法有错误或不能完成被满足 |
5xx | 服务器错误 | 服务器无法完成显示有效的请求 |
200 成功
302/301 永久/临时重定向
header('Location:http://www.baidu.com'); 302
header('Location:http://www.baidu.com', true, 301); 301
true 参数意用301信息替换原来的头信息
引发的思考:
a.php post提交信息到 b.php 然后b.php做一个重定向 到c.php 那么请问c.php能不能接收到post请求的数据呢? 改用什么重定向呢?答案:307
304 not modified 为修改 说明读取的是缓存
![](https://app.yinxiang.com/shard/s24/res/6d074856-22a3-4b5b-8d1c-5105830fe633/http_cache.png?search=%E4%BB%A3%E7%90%86)
失败的状态码:
404 请求的网页不存在
503 服务器暂时不可用
500 服务器内部错误