什么是网络协议
约定:
要素 | 含义 |
语法 | 数据和控制信息的结构或者格式(可以发送的指令) |
语义 | 可以发送什么数据和控制信息,完成什么动作或者做出什么响应(指令代表的含义) |
时序 | 信息交流的次序,先发什么,响应什么,后发什么 |
TCP/IP协议簇

分层的含义:可以更好的明确每一层的职责。
TCP/IP四层模型
层次 | 名称 | 作用 |
Link Layer | 数据链路层(mac层) | 实现网卡接口的网络驱动,在以太网,WiFi这些物理媒介上传输原始数据 |
Internet Layer | 网络层 | 选择中间节点(路由器等),以确定两台主机间的通讯路径 |
Transport Layer | 传输层 | 负责节点的数据传输,实现格式化数据、发送数据、重连等等功能 |
Application Layer | 应用层 | 为用户提供各种需要的服务(如HTTP服务等) |
传输过程:

OSI(Open System Interconnection 开放式通信系统互联参考模型)
参考模型进行统一标准

HTTP协议的诞生
Hypertext Transfer Protocol(超文本传输协议)
应用了超链接
HTML(超文本标记语言)
URL(统一资源定位符)

浏览器:用来解析HTML网页
eg:Netscape
Internet Explorer
Firefox
Google Chrom
web服务器:世界上第一个网站:Http://cern.ch
HTTP+URL+HTML+浏览器’服务器+=WWW:World Wide web(万维网)
HTTP详细格式
请求方式
类型 | 描述 |
GET | 请求从服务器获取资源 |
HEAD | 类似于GET请求,只不过不会返回实体数据,只获取报头 |
POST | 向服务器提交数据(服务器接收到数据) |
PUT | 替换服务器的内容 |
DELETE | 请求服务器删除指定的资源 |
TRACE | 对链路进行测试或诊断 |
| |
GET与POST的区别
对比项 | GET | POST |
用途(语义) | 请求数据(查询,搜索) | 发送数据(服务器将请求保存下) |
后端处理 | 从URL获取参数 | 从表单获取数据 |
可见性 | 参数在URL中可见 | 参数在URL中不可见 |
安全性 | 安全性差,有浏览历史,可保存书签,可缓存 | 安全性好 |
数据长度限制 | 浏览器会限制URL长度 | 无限制 |
数据类型限制 | 只允许ASCII字符 | 无限制 |
连接过程 | 产生一个TCP数据包 | 产生两个TCP数据包 |
请求报文

响应报文

响应状态码


200:请求成功
201:创建了一个资源
301:将浏览器定向一个新的页面(永久)
302:暂时
400:告诉浏览器请求中存在错误(服务器不理解请求的语法)
401:不允许查看这个资源,直到获得授权
403:无论是否登录,都没有权限查看这个资源
404:请求页面不存在
405:资源不允许以这种方式进行请求
500:服务器在请求中遇到错误,不知如何处理
503:服务器无法处理请求
常见的请求头和响应头

HTTP特点总结
1.请求应答模式
2.灵活可扩展(非强制性,可改)
3.可靠传输(工作在TCP/IP协议上(三次握手,四次挥手))
4.无状态(请求均为独立请求,cookie)
HTTP服务器(资源提供方)
Apache、Nginx、Tomcat、IIS、weblogic
编程语言:python,Java
py2:python -m SimpleHTTPServer 8088
py3:python -m http.server 8089
HTTP客户端(资源请求方)
浏览器(电脑、手机)、APP(微信、支付宝、淘宝、京东、今日头条.......)、python requests、java OKhttp、HttpClient ........
HTTP调试工具
F12、hackbar、burp suite、postman、wireshark(fiddler、Charles)、CURL(Linux).....
