2.1 网络请求的发送和响应的接收
1.电脑上 通过谷歌浏览器
输入网址url www.baidu.com,发送给了DNS服务器
2.DNS服务器是啥
网络海洋当中,怎么标记一台特定的电脑
服务器IP地址 :举例百度服务器:11.11.11.11
平常我们使用的是www.baidu.com的域名去访问百度
即:
给机器看的IP 11.11.11.11
给人看的域名 www.baidu.com
DNS作用:www.baidu.com >> 11.11.11.11
通过域名解析出对应的IP地址
DNS服务器通过我们输入的域名解析出IP地址
3.拿着IP地址11.11.11.11,百度首页的服务器(仓库)
4.返回给咱们一些数据
html + js + css + jpg
组成了我们看到的网页
2.2https和https
IP:
一般来说分为2个IP:
一级IP就是你们家的网络路由器:1.1.1.1
二级IP:由一级IP 查看 > 终端 > ipconfig ifconfig
小明:2.2.2.2
大明:3.3.3.3
怎么查看客户端和服务器的交流过程
1.鼠标右键点击网页,点击(检查),F12
2.找到network点击,里面存在网络数据的信息
3.访问百度首页
4.很多的数据包就组成了我们看到的网页(html,jpg,css.js)
5.寻找,ALL里面就是全部的数据包
6.一般,整体的骨架的数据,就是第一个数据包
(1)Headers:请求的信息request 响应的信息response
(2)Preview:预览效果是什么样,图片的缺少代码需要其它的数据包的填充
(3)Response:数据包的类型是html,里面就是这个html数据包的源代码
7.General:整体的信息描述
(1)Request URL: 该数据包的域名
(2)Request Method: 请求的方式 GET POST
(3)Status Code: 状态码的东西
(4)Remote Address: 14.215.177.38:443 IP:端口号
8.Response Headers:响应头(响应信息),了解即可
服务器需要遵循这种规则,浏览器才能够解析出来,并且展示
12:00 20:00 八个小时 东八区的时间
9.Request Headers:请求头(请求信息)
我们(浏览器,爬虫程序)向服务器发送请求
遵循http协议
(以百度首页为例,每个网站不一样)
Accept:(了解),我们接收哪些数据类型
Accept-Encoding: (了解),浏览器支持的编码类型
Accept-Language: (了解),接受的语言
Cookie(重点):记录会话信息,记录和服务器交流信息
包括:用户名,身份信息(下次访问不用填写账号密码)
Host: 域名
User-Agent(重点): 你的客户端的信息,用户代理
2.3字符编码问题
首先,服务器就要把python数据的类型,转化成字节类型,才能放到网络上传输
python数据类型(string) >> bytes类型
例如: encode 编码
data = ‘思思’
bytes_data = data.encode()
print(type(bytes_data)) # 字节类型
print(bytes_data)
#从网上拿数据 bytes >> python数据类型(string)
decode 解码 把看不懂的解码与看得懂的
str_data = bytes_data.decode()
print(type(str_data)) # 字符串类型
print(str_data)
encode decode 需要格式一样 格式对应
编码格式是什么,那么解码格式就必须得是什么,才能够成功的解码
encode() decode() 默认格式 utf-8
假如此时的数据是从网上拿来的,我们就要遵循它的编码格式进行编码 一般都是utf-8