Python实训第一天
Day.01 Python实训
网络传输的过程:
1、由应用层的发送端发送出数据,注册添加首部信息,处理后最终走到物理层向外发送
2、发送出的数据经过多个节点(交换机、路由器)传输,每个节点解析物理信息和网络信息,
并且添加到新的网络物理信息,最终到达主机
3、主机接收数据,接受数据后从物理层开始进行解析,最终呈现在应用层。
网络主机:
标识一台主机所在的网络的位置,就是其地址
查看机器的IP地址,网络地址,自动获取网卡地址,网关信息等
全球13台服务器,构成全球互联网
1台根服务器
12台主服务器
IP地址
一台主机在网络中的位置
端口号
网络地址的一部分,用于区分主机不同的网络应用程序(程序在主机的唯一ID)
在一个系统中所有的端口号都是唯一的
域名
127.0.0.1:8080 ————>>localhost:8080
URL地址(统一资源定位符)
http://www.baidu.com:80/com.cn/index.html
协议://域名:端口号/URL/[GET参数]
TCP协议的传输层
a、TCP的传输特征:提供了可靠的数据传输,也就是在传输过程中,无丢失,无差
错,无失序,无重复
b、传输的前提:在两者之间建立好连接
c、建立连接的三次握手
1、客户端向服务器端发送SYN消息报文请求连接。
2、服务器收到请求之后,回复ACK报文确定可以连接。
3、客户端接收到消息回复,发送消息报文建立连接。
SYN=1,seq=x
SYN=1,ACK=x+1,seq=y
Syn=1, ACK=y+1,seq=x+1
d、断开连接的四次挥手
1、主动方发送断开请求。
2、被动方接收到请求,立即回复,并且准备断开。
3、被动方准备就绪后,再次发送报文消息告诉主动方可以
进行断开。
4、主动方发送最终确认报文,断开连接
FIN=1,seq=x
FIN=1,ACK=x+1,seq=y
FIN=1,ACK=x+1,seq=z
Fin=1,ACK=z+1,seq=h
e、TCP传输时需要注意“粘包”问题
解决方案:1、控制数据的发送速度
2、人为的添加消息边界
SYN:同步序列编号(Synchronize Sequence Numbers),位数置1,表示建立TCP连接
ACK:确认字符(Acknowledge Character),验证字段
FIN: 位数置1,表示断开TCP连接
重点:在整个过程有11种状态
HTTP协议:超文本传输协议
主要是用在网页中数据传输
属于OSI中应用层协议
基于传输层的TCP
无状态,不记录任何内容
从网页中URL地址栏数据地址按下回车到响应出内容大概过程
a,浏览器会组织请求内容为HTTP协议格式
b,将请求内容通过网络层的TCP协议发送到服务器
c,服务器先接受TCP数据转化为HTTP请求的内容,然后进行解析
d,服务器组织好请求中需要的数据
e,将准备好的数据通过HTTP协议发送到客户端
f,客户端从TCP中获取到HTTP,然后进行解析
g,浏览器将解析好的数据通过特定的方式展现到浏览器主页
请求模块
a,请求行:包括具体的请求类别和请求内容
1,请求格式
GET(POST) / HTTP1.1
请求类别 请求内容 版本信息
2,请求类型
GET:获取网络资源
POST:提交一定的信息,并且得到反馈
HEAD:只用于获取网络资源和响应头信息
PUT:用于更新服务器资源
DELETE:用于删除服务器资源
TRACE:用于做测试
OPTIONS:用于获取服务器性能信息
connect
3,请求内容
表示要获取的具体的信息内容
b,请求头
对于请求的进一步解释阐述
c,空行
d,请求体
在请求体的基础上,对请求体的更加详细的表达描述
响应模块
a,响应行:最基本的响应信息内容
1,响应格式: HTTP1.1 200
版本信息 响应状态码
2,响应状态码:三位数表示
1xx 提示信息,表示请求被接收
2xx 响应成功
3xx 重定向,响应需要进一步处理
4xx 客户端发生错误
5xx 服务端发生错误
b,响应头
对响应内容的描述
Content——Type:text/html
c,空行
d,响应体
响应的主体信息内容