2018-09-12day18-网络基础

2018-09-12  本文已影响0人  猫爱老鼠丶

OSI参考模型

计算机数据通信过程

过程:客户端通过下一跳找到DNS的IP地址对应的服务器,DNS服务器会对客户端访问的域名进行解析,然后再将解析域名后得到的IP地址返回给客户端,客户端根据解析到的IP地址找到相应的服务器,并发出请求。


数据封装

数据解封

传输层两个协议(TCP/UDP)

TCP如何实现可靠传输

HTTP协议

客户端如何找到想要的服务器?
客户端通过URL找到想要连接的服务器
1.什么是URL

2.URL的基本格式 = 协议://主机地址/路径
协议:不同的协议,代表着不同的资源查找方式、资源传输方式
主机地址:存放资源的主机(服务器)的IP地址(域名)
路径:资源在主机(服务器)中的具体位置

3.URL中常见的协议

4.HTTP协议的作用
a.规定客户端和服务器之间的数据传输格式
b.让客户端和服务器能有效地进行数据沟通

5.HTTP协议的特点

6.HTTP通信过程


7.常见响应状态码
状态码 英文名称 中文描述
200 OK 请求成功
400 Bad Request 客户端请求的语法错误,服务器无法解析
404 Not Found 服务器无法根据客户端的请求找到资源
500 Internal Server Error 服务器内部错误,无法完成请求

8.发送HTTP请求的方法(GET/POST)
GET和POST的主要区别表现在数据传递上

python对套接字的支持

服务器

import socket

# 1.创建套接字对象
server = socket.socket()
# 2.绑定IP地址和端口
server.bind(('10.7.153.120', 8080))
# 3.监听
server.listen(512)
while True:
    # 4.接收请求
    connect,addr = server.accept()
    # 5.发送数据
    with open('./files/cat.jpg', 'rb') as f:
        data = f.read()
    connect.send(data)
    # 6.接收数据
    # connect.recv(512)
    # 7.关闭连接
    connect.close()

客户端

import socket

client = socket.socket()
client.connect(('10.7.153.120', 8080))

# 创建一个空的二进制数据
all_data = bytes()

# 接收从服务器传回来的数据
data = client.recv(1024)
while data:
    print('接收到数据')
    all_data += data
    data = client.recv(1024)

with open('./files/new.jpg', 'wb') as f:
    f.write(all_data)
client.close()

http请求

import requests

# 1.准备url
url = 'https://www.apiopen.top/satinApi?type=1&page=1'

# 2.发送请求
"""
get(url,参数对应的字典)
post(url,参数对应的字典)
返回值是服务器返回的响应
"""
response = requests.get(url)
# requests.get('https://www.apiopen.top/satinApi',{'type': 1, 'page': 1})
print(response)

# 3.通过响应获取服务器返回的数据
# a.获取字符串类型的数据
print(response.text)

# b.获取json格式的数据
print(response.json())

# c.获取二进制格式的数据
print(response.content)

# 4.获取响应头(了解)
print(response.headers)
上一篇 下一篇

猜你喜欢

热点阅读