Python理论知识

网络中常见概念


# URL  统一资源定位符  UniformResourceLocation
# 理解为 网址


# 结构
# 协议://ip地址:端口号/文件相关路径


# 例子
# http://www.baidu.com:80/index.html


# HTTP:超文本传输协议 80
# HTTPS:更安全的超文本传输协议 443
# FTP:文件传输协议




# 超文本:电影,音乐,图片....


# http://www.ivsky.com/
# http://www.baidu.com
# https://www.baidu.com




# IP:InternetProtocal 网络协议
# IP地址: 例如192.168.1.1
# IP地址有两个版本   IPv4 IPv6
# 全球60亿*2 = 120亿个IP地址
# IPv4  192.168.1.1 四个部分组成,每个部分的范围是0-255,理论上可使用255^4=40亿
# IPv6 全球每颗沙子都能分配一个ip 2^128


# 域名DomainName
# 例如: baidu.com




# 域名是IP的一个别称
# 百度IP 111.13.100.92
# 百度域名 baidu.com


# 为什么域名和IP能够对应起来?
# DNS:DomainNameSystem 域名解析系统
# 常用的DNS有哪些?
# 8.8.8.8:是Google提供的免费DNS服务器的IP地址
# 114.114.114.114:是国内第一个、全球第三个开放的DNS服务地址


# 技术贴
# 想查看国外网站,需要"翻墙"
# 墙:中国对国外信息封杀的一堵墙


# 手段1:使用软件,例如蓝灯
# 手段2:用vpn
# 手段3:手动修改hosts文件




# 客户端 client
# 例如:手机/平板/电脑/.......
# qq,微信,.....




# 服务器 server
# 给客户端提供服务器的机器
# 例如:百度服务器,腾讯/阿里/京东..都有自己的服务器
# 我们的手机/平板/电脑也是服务器


# 注意:如果你的手机访问别人的东西,那么它是客户端
# 如果别人通过访问你的手机可以获取消息,那么它是服务器
# 因此客户端和服务器之间没有明显界限,取决于应用场景




# 服务器:日常说的一般是大型的设备
# 特点:存储空间很大, 内存比较大, CPU个数比较多.....说白了就是电脑




# 用电脑玩LOL  一般开两个会比较卡
# 用服务器玩LOL 开10个不成问题,一般服务器运行起来是不能关闭的,服务器所在房间是需要配空调的


# 自己可以从网上租一个服务器
# 自己搭建一个服务器,使用命令  python -m http.server 81




# 请求 request
# 响应 response


# 客户端 通过 请求 向 服务器发送数据
# 服务器 通过 响应 向 客户端返回数据


# 请求的结构
# 请求行:     请求方法 请求地址 HTTP/1.1
# 例如 GET /index.html HTTP/1.1


# 请求头:
# Host:域名
# User-Agent:一般用于模拟不同的设备去发请求
# Cookie: cookie可以存储用户一些信息,我们可以用它来模拟登录


# 空行


# 请求数据




# 响应结构
# 响应行:版本 状态码 短语
# 1.1 200 ok


# 响应头


# 空行


# 响应数据










# ==================================
# 常用状态码
# 1xx
# 2xx:一般表示成功
# 3xx:一般表示重定向
# 4xx:一般表示客户端错误
# 5xx:一般表示服务器错误


# 200 表示成功
# 404 服务器无法找到被请求页面
# 403 服务器拒绝访问权限不够  Forbidden
# 500:请求未完成,服务器遇到不可预知的情况
# 302:




# 常用的请求方法
# GET/POST
# 其它方法:PUT/DELETE/OPTION/HEAD


# GET:一般用于请求网页,获取数据(对于数据库的查)
# POST:一般用于上传数据,表单提交(登录/注册/上传头像....)(对应增)
# DELETE:一般用于删除数据/文件(对应删)
# PUT:一般用于更新数据(对应改)


# 面试题
# GET和POST的区别
# 1. 参数位置
#   GET:参数一般位于URL后面
#   POST:参数一般位于请求体中
# 2. 数据长度
#   GET:长度有限制
#   POST:长度理论上没限制,实际上取决于服务器的处理能力
# 3. 安全性
#   POST相对于GET安全一些,但是两者都不安全
#   例如 10块的保险柜 和 15的保险柜
# 4. 应用场景
#   GET:一般用于获取数据
#   POST:一般用于上传数据

# 5. 以上全部都是大众说法,但是在我看来,网络协议中并没有规定上述特征


==========================================================================

requests基本用法

# import urllib
# import urllib2
# import urllib3
# import http
import requests
import json
# 服务器向客户端返回的数据格式有哪些?
# url  http://api.map.baidu.com/telematics/v3/weather?请求参数
# DNS 域名解析服务  把域名转换为ip地址再进行访问  DNS 114.114.114.114  8.8.8.8
# JSON/XML


# 1. 使用requests发送get/post/put/delete等请求
# GET参数
# URL?参数1=内容1&参数2=内容2....
# 注意:参数部分不能出现空格或者特殊字符
# 请求报文    请求行(请求方法\请求地址\协议版本)   请求头(User-Agent,Cookie,Host...)   空行  请求数据
# 响应报文    响应行(协议版本\状态码(200\302\404\403\500)\状态短语)   响应头(Set-Cookie)  空行  响应数据
response = requests.get("http://api.map.baidu.com/telematics/v3/weather?location=郑州市&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?")
# print(response.content)


response = requests.get("https://www.baidu.com/s?wd=python")


# rs_dict = json.loads(response.text)
# print(response.content)


response = requests.get(
    "https://www.baidu.com/s",
    params={
        "wd": "python"
    }
)
# print(response.content)


# 参数1:url
# 参数2:data,类似于params
# 参数3:json
# 参数4:**kwargs
'''
<RequestsCookieJar[<Cookie gpsd=e681613e81ffe1a7f5b8d0c3c295eb99 for .chouti.com/>, <Cookie puid=91142b3c207b2730c81c8172dd51c282 for .chouti.com/>, <Cookie JSESSIONID=aaacHl6r6SQGEgpBhdrhw for dig.chouti.com/>, <Cookie route=0c5178ac241ad1c9437c2aafd89a0e50 for dig.chouti.com/>]>
'''
response = requests.post(
    "http://dig.chouti.com/login",
    data={
        "phone": "8615896901897",
        "password": "qweqweqwe1",
        "oneMonth": "1"
    },
    headers={
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:49.0) Gecko/20100101 Firefox/49.0",
    }
)


# f = open("chouti.html", "wb")
# f.write(response.content)
# f.close()
print(response.text)


# response = requests.put()

# response = requests.delete()

========================================================================














  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值