HTTP
笔记内容的发布主要是怕哪天自己的电脑挂了 之前总结的笔记会丢,所以在这个网站晒出来作为备份,笔记的内容也是自己对此技术的粗浅理解,仅供自己观看,并不能保证全部理解都是正确,还需网友观看时自行鉴别 谢谢
HTTP:超文本传输协议(HyperText Transfer Protocol)
特点:
1 基于TCP/IP的高级协议
2 默认端口号80
3 基于请求/响应模型的 一次请求对应一次响应
4 无状态:每次请求之间相互独立 不能交互数据
* 历史版本:
* 1.0:每一次请求响应都会建立新的连接
* 1.1:复用连接
不管是1.0还是1.1 都是无状态短连接。每一次请求都是独立无关联的
短连接 存活时间端
长连接 socket 必须有一方申请断开才能断开。它不会自动断开。
TCP 点对点
UDP 广播
协议封装:指定传输的数据格式
HTTP请求格式
请求行:
请求方式 请求url 请求协议/版本
GET /login.html HTTP/1.1
请求方式:
HTTP协议有7中请求方式,常用的有2种
GET:
- 请求参数在请求行中,在url后。
- 请求的url长度有限制的
- 不太安全
POST:
- 请求参数在请求体中
- 请求的url长度没有限制的
- 相对安全
请求头:
客户端浏览器告诉服务器一些信息
格式:请求头名称: 请求头值
常见的请求头:
User-Agent
:浏览器告诉服务器,我访问你使用的浏览器版本信息
可以在服务器端获取该头的信息,解决浏览器的兼容性问题Referer
:http://localhost/login.html
告诉服务器,我(当前请求)从哪里来?
作用:防盗链、统计工作- 请求空行:
空行,就是用于分割POST请求的请求头,和请求体的。 - 请求体(正文):
封装POST请求消息的请求参数的 - 字符串格式
POST(请求头)
/login.html HTTP/1.1
Host
: ()localhost
User-Agent:(访问浏览器的基本配置)
Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0
Accept:(告诉浏览器我可以解析什么样的东西)
text/html,application/xhtml+xml,application/xml;q=0.9,/;q=0.8
Accept-Language:(我可以支持的语言环境)
zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Referer(告诉服务器我(当前的请求)从哪里来)
: http://localhost/login.html
Connection(我的连接状态)
: keep-alive
Upgrade-Insecure-Requests(关于升级的信息)
: 1
username=zhangsan