计算机/软件工程师有许多必修功课:计算机网络,操作系统,设计模式,数据结构与算法,汇编…这些知识都被称为工程师的“内功”。
框架层出不穷,而这些通用的底层知识,却是几乎不变的。
最近我总结了一些关于HTTP的知识,希望对大家也有所帮助。计划分为上下两篇,大纲如下:
- 历史版本
- 缓存机制
- tcp三次握手与四次挥手
- 网络安全与防范
涉及的概念
HTTP(Hypertext Transfer Protocal,超文本传输协议)是基于TCP/IP协议的应用层协议。是当下主流的网络传输协议,在工作中经常用到它来获取服务器资源,如下载文件,请求数据等。
报文:客户端和服务端交互式会发送请求数据和响应数据,被称之为报文。报文中包含首部header和主体部分body
一、历史版本-HTTP的前世今生
HTTP 0.9
-
- 只有一个命令 GET
- 服务器只能回应 HTML 格式字符串
HTTP 1.0
-
- 每个TCP只能发送一个请求,发送数据完毕,连接就关闭。再次请求则需要重新启动、TCP3次握手。
- 任何格式的内容都可以发送,为互联网高速发展奠定了基础
- 支持 POST, HEAD 命令,丰富了浏览器与服务器的互动手段
- 每次通信必须包括头信息(HTTP head