2018-09-12day18-网络基础

OSI参考模型

  • 应用层:所有产生网络流量的程序(QQ、浏览器、有道)
  • 表示层:数据传输前的压缩、加密、确定编码方法等操作
  • 会话层:查看木马(netstat -nb)(只要需要网络请求,就必顶会建立会话)
  • 传输层:可靠传输、不可靠传输、流量控制
  • 网络层:负责选择最佳路径、规划IP地址
  • 数据链路层:帧的开始和结尾、透明传输、差错校验
  • 物理层:借口标准、电器标准

计算机数据通信过程

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


数据封装

数据解封

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

  • TCP协议(Transmission Control Protocol,传输控制协议)
    1.需要传输的文件分段传输
    2.建立回话
    3.可靠传输
    4.流量控制
  • UDP协议(User Data Protocol,用户数据报协议)
    1.一个数据包就能完成数据通信
    2.不需要建立会话
    3.不可靠传输
    4.不需要流量控制

TCP如何实现可靠传输

HTTP协议

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

  • URL的全称是Uniform Resource Locator(统一资源定位符)
  • 通过1个URL,能找到互联网上唯一的1个资源
  • URL就是资源的地址、位置,互联网上的每个资源都有一个唯一的URL

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

3.URL中常见的协议

  • HTTP
    超文本传输协议,访问的是远程的网络资源,格式是http://
    http协议是在网络开发中最常用的协议
  • file
    访问的是本地计算机上的资源,格式是file://(不用加主机地址)
  • mailto
    访问的是电子邮件地址,格式是mailto://
  • FTP
    访问的是共享主机的文件资源,格式是ftp://

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

5.HTTP协议的特点

  • 简单快速
    因为HTTP协议简单,所有HTTP服务器的程序规模小,因而通信速度很快
  • 灵活
    HTTP允许传输各种各样的数据
  • HTTP 0.9和1.0使用非持续连接
    限制每次连接只处理一个请求,服务器对客户端的请求做出响应后,马上断开连接,这种方式可以节省传输时间

6.HTTP通信过程


7.常见响应状态码

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

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

  • GET
    a.在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如
    http://www.test.com/login?username=123&pwd=234&type=JSON
    b.由于浏览器和服务器对URL长度有限制,因此在URL后面附带的参数是有限制的,通常不能超过1KB
  • POST
    a.发给服务器的参数全部放在请求体中
    b.理论上,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)
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容