软件开发架构:
·bs架构
·cs架构
#本质bs和cs是一致的
一个简单的web框架:
#http协议
网络协议 数据传输明文
#https协议
网络协议 数据传输密文
#websocket协议
网络协议 数据传输密文
http协议
1.基于请求响应
2.基于tcp,ip作用于应用层之上的协议
3.无状态
4.短/无链接
数据格式
1.请求首行
2.请求头
3.请求体
响应状态码
1xx
2xx
3xx
4xx
5xx
#nxx的意思主要见博客:
response对象1xx,2xx,3xx,4xx,5xx状态代码的含义
##补充##
== 比较数据
is 比较内存地址
网络通信
网络存在的意义就是跨地域进行数据传输
网络=物理链接介质+互联网通讯协议
互联网通讯协议
osi七层协议:
一个很好的博客
一个较为通俗的博客
在这一块很好的博客
但是网络编程一般只需要五层:
1.应用层
3.传输层
tcp协议、udp协议 都是基于端口
其中:
端口范围0-65535,0-1023为系统占用端口
##ip+port 表识全世界范围内独一无二的一个基于网络通信的应用程序##
tcp协议:
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
以太网头》》ip 头》》》》》》tcp头》》》》数据
tcp报文:
基于tcp协议通信之前:必须建立一个双向通信的链接
三次握手建立连接:
tcp是可靠传输的:
发送数据必须要等到对方确认才算完成,才会将自己内存中的数据传输
tcp的三次握手四次挥手:
udp协议:
不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
以太网头》》ip头 》》》》udp头 》》》》》数据
3.网络层
ip协议:
本质:在各各广播域通讯
- 划分广播域
- 每一个广播域但凡要接通外部,一定要有一个网关帮内部计算机转发包到公网
- 网关与外界通讯是路由协议
规定:- 一组数据称为一个数据帧
- 数据包分为两部分:头+数据
头:源地址和目标地址,该地址是ip地址
ip地址:
ipv4地址:
范围:0.0.0.0~255.255.255.255
8bit.8bit.8bit.8bit
子网隐码(代表是否在同一广播域内):
8bit.8bit.8bit.8bit
ipv4地址组成部分:ip地址/子网隐码地址
数据:包含传输层发送来的整体内容
4.数据链路层
ethernet以太网协议,对物理层发送的数据(电信号)进行分组(以太网协议工作方式是广播)
-
规定:一组数据称之为一个数据帧
-
规定:数据帧分为两部分:头+数据
头:
1·发送者/源地址------6个字节
2·接收者/目标地址—6个字节
3·数据类型-------------6个字节
#发送者和接收者,是mac地址
数据:
包含的是网络层发送来的整体的内容 -
规定:但凡接入互联网的主机必须有一块网卡,每块网卡在出厂前都有一个全世界独一无二的地址,是mac地址
5.物理层
负责发送电信号
协议:规定数据的组织格式
格式:头部+数据部分
ARP协议:
把ip地址解析成mac地址
#两台计算机在同一局域网内:
APR:
自己的ip对方的ip
1.计算二者网络地址,如果一样,拿到计算机2的mac地址就可以
2.发送广播包
#两台计算机不在同一局域网内:
APR:
自己的ip,对方的ip
1.计算二者的网络地址,如果不一样,应该拿到网关的mac地址
2.发送广播包