网络和HTTP协议

网络和http协议理论

协议:两台计算机需要互相通讯,需要定义规则,如何发现对方、谁先发起通讯、通讯语言规则、结束通讯标识。

TCP/IP协议族

协议族:不止一个协议,一堆协议的总称。
-TCP UDP:传输控制协议。
-IP:网络地址。
-HTTP:hyper text transaction protocol 超文本传输协议。html
-DNS:域名解析。
-PPPoE:拨号上网、连接网络服务商。例如联通宽带我世界拨号上网。
-FTP:file transfer 文件传输。
-ICMP SNMP:mail 邮件。
-IEEE802.3:Ethernet 以太网,局域网。802.11无线网卡WiFi。
-ARP:地址解析协议。发现局域网中的其他地址

网络通讯概览

客户端→ 协议转发 到各个节点路由器→服务器端
客户端:个人电脑
服务器端:别人的电脑,提供网站服务内容的平台。

http协议

形如http//www.baidu.com
浏览器会自动默认省略http前缀。
网页是有html书写的。http协议非常流行。

三次握手

http协议为了准确送达和请求数据,不考虑规则细节,宏观上主要三个步骤:
1.发送sym synchronize同步标识。目的是看网络通不通,服务器是否能提供服务。
2.服务器端发送 syn/ack acknowledgement 标识,告诉客户端我准备好了,你可以请求我.
3.客户端收到 syn/ack标识后,开始请求。

TCP和UDP

TCP协议

报文:按照一定结构封装的数据信息。例如http报文包含信息、目的地IP、请求方法、请求URL地址等。
http协议底层基于TCP协议.宏观上看,http报文通过三次握手发送到服务端.底层上 http请求先拆分一段段的TCP报文.TCP报文包含请求地址、请求信息等。当服务收到TCP报文后会再组合成http报文
场景:http协议、网页信息。

UDP协议

user datagram protocol 用户数据报协议。
客户端直接与服务端传输数据,不需要握手校验。
所以udp协议可能数据会丢失或传输错误。优点:传输速度快
场景:视频、游戏数据。所以少量数据包丢失不影响大致体验。

dns协议

域名domain:形如www.baidu.com www.lomo.com
IP地址:形如 192.168.221.73 47.222.57.222
比较:域名好像人的名字,优点是好记。IP地址好像人的身份证号,优点是容易被计算机处理。
本来计算机网络就是靠IP地址来区分和访问,当你访问网络多达上百个时,数字组成的IP地址很难记,问题二:公司升级或更换电脑,迁移部署在服务器上的网站时,地址发生变化,不容易通知老客户网站,导致老客户访问不了网站。不好维护,所以发明了域名,域名由英文和数字组成,好记。建立域名到IP地址的映射关系,www.baidu.com →47.222.15.55。如果百度更换服务器,只用维护修改映射关系,普通用户仍然访问域名不需要变化。

DNS:domain name server 域名专户协议。
DNS服务器:各个网站 域名转换IP的关系需要记录到一个服务器上服务大众。

流程

1.客户端先访问当地运营商的DNS服务器,请求查询taobo.com的IP地址
2.DNS服务器返回taobao.com对应的IP地址。
3.根据IP地址请求taobao服务器。

hosts文件

打开一个网页,有信息有图片,请求几十次。如果每一次都查询dns服务器,将消耗资源,所以浏览器会缓存映射关系。
电脑上本地也有一个dns关系缓存配置文件,hosts。Windows系统
用管理员权限记事本打开可以编辑。hosts里的定义优先级最高。如果浏览器访问一个网站,会先去hosts文件查询,如果查到IP地址直接访问,如果没有查到再去查询dns服务器。

pycharm破解原理

(请优先支持正版)
百度“lanyu”itellij破解码

如果直接把激活码放入pycharm激活,会几秒提示失效。原理pycharm会每隔一段时间自动请求官方服务器验证激活真伪,假激活码不在官方服务器内,服务器就会通知客户端退出。
所以修改hosts文件,添加“0.0.0.0 account.jetbrains.com”,这样pycharm后台验证请求时,不会请求真实的官方网站,而是会请求0.0.0特殊IP地址,请求都会被丢弃.这样做假激活码就可以长时间使用。

###墙的原理
DNS污染:运营商控制着dns服务器,修改了一些网站的映射信息,例如www.google.com→67.22.22.22;把真实的IP地址置换为一个错误的IP地址编程 www.google.com →0.0.0.0;这时用户就无法访问。
其他的措施GFW government file wall

###翻墙的一种方法
修改hosts文件。因为墙的原理是污染dns服务器,hosts文件优先级更高。所以可以上网找别人整理好的hosts文件,内容是常用国外网站和对应的真实IP地址。优点是免费、易于修改。缺点:突破封锁能力一般。

寻找hosts文件:GitHub码云上搜索“hosts”,百度“laoD”

局域网 ARP

ARP协议:地址协议,发现局域网中的其他电脑地址并探测。
IP地址:网络分配的一个地址,就好像大街上的门牌号。
MAC地址:物理地址,形如00-OE-01-AA-12-12,每一块网卡有一个全球唯一的编号。电脑网络硬件唯一标示。

IP协议

IP地址:形如45.222.222.21由四个字节组成,每一段的范围0-255。

(了解)分类

A类:1.0.0.0到127.255.255.255 局域网少而主机大量的大型网络
B类:128.0.0.0到191.255.255.255 大型公司
C类:192.0.0.0到223.255.255.255 小公司 学校
D类:224.0.0.0到239.255.255.255 广播地址
E类:240.0.0.0到255.255.255.255 保留

公网地址

一个ipv4地址唯一确定网络上电脑的位置,我们访问这个IP就可以访问到他的服务器.ipv4地址较为紧缺.

特殊地址

127.0.0.1localhost,本地IP地址,代表你自己正在操作的电脑
0.0.0.0,空地址,请求都会被丢弃
169.254.., 保留地址,DHCP服务无法分配
192.168.. , 局域网地址.

(私有ip)局域网地址

10.0.0.0到10.255.255.255
172.16到172.31.255.255
192.168.0.0到192.168.255.255
对应二进制:110000000 10101000 00000001 00000001-11111111111,前24位固定,后八位排列组合分配给网段内的机器。
网关:一般为192.168.1.1, 一个局域网的门口 ,一般给路由器使用
支持的局域网IP: 192.168.1.2 – 192.168.1.254, 两百多台机器。
下一间屋子就可以换下第三段数字继续 192.168.2.*
同一局域网段内:192.168.221.50 -192.168.221.73
跨局域网段(路由器连接并允许沟通)192.168.221.50(321教室某同学) - 192.168.221.1(321教室路由网关器) - 192.168.222.1(320教室路由器) - 192.168.222.30(320教室某同学)
同一局域网内的电脑超过了256台;解决方案:IP地址一共32位,前24位固定,后面8位公256种可能分配局域网电脑和网关.前面固定位数减少,后面组合的位数增加,所以出现10开头的局域网IP段支持更多电脑。
子网掩码:同一个局域IP地址,不知道固定的是多少位,自由组合多少位,产生歧义,定义局域网IP地址前多少位是固定的。
例如:192.168.221.73
二进制11000000 10101000 1101101 01001000 前24位固定
子网掩码 11111111 11111111 11111111 00000000 固定用1标识.
子网十进制 255.255.255.0以为就是说上面的局域网IP 192.168.221部分是固定的。

DHCP协议

DHCP协议:因为配置静态IP比较麻烦和专业。所以出现了DHCP 动态dns分配协议。路由器如果开启DHCP服务,那么会为接入局域网的电脑设备自动分配局域网IP、网关、子网掩码。优势是比较方便。相关设置 DHCP的IP池 100-150最多支持50台,设置IP过期时间。IP过期后会重新分配IP。
静态IP:如果有更精细的需求,应该手动配置静态IP。

ipv6

(了解)ipv6,pv4除去一些特殊网段加上网络在全球非常流行,每个人都有手机电脑网络设备,ipv4地址紧缺不够用,ipv6地址正在推广中。

端口 port

服务器的IP(域名)好像银行,端口就好像银行的各个窗口.每一个窗口接待不同的顾客(请求),办理不同业务.
网站地址形如https://47.95.227.220:80/ ,等价于https://www.lowo.com:80/,web服务默认端口80,默认可以省略,浏览器会自动加上,我们一般看到的https://www.lowo.com
计算机预留端口运行着各种功能的服务,范围0-65536.0-1024未系统范围,常见和电脑自身服务.1024之后第三方软件和自己开发用.
常见端口
-21 ftp
-22 ssh远程连接
-23 Telnet 远程登录
-25 邮件
-80 网站服务
-443 https 安全网站服务
-1080 socket 套接字
-MySQL 3306
-flask 5000 djanggo 8000
-8080 代理

整体流程

1.客户端浏览器请求一个页面
2.请求dns服务器获得网页对应地址IP地址
3.构造http请求
4.http拆分成多个TCP报文
5.TCP报文通过包含的IP信息,跳转路由
6.服务器收到TCP报文
7.服务器TCP报文组装还原成http报文信息
8.服务器根据http请求返回相应资源,返回响应内容。传输过程同上。

深入http协议

requests和response概览

请求request
属性:
-请求方法:GET、POST
-host:目标地址
-connection:keep alive或指定过期时间。
-cookie:比如,浏览器自带的小数据库
-user-agent:用户的浏览器信息

响应response
属性:
-Content-Type:内容类型,字符编码
-date:时间
-Set-Cookie:服务端让浏览器存储的信息
-status-code:响应码,判断成功或失败的原因。
-返回具体信息 html js css png。

URI URL

URI (Uniform Resource Identifier)统一资源标识符,互联网某一资源的位置的表示。
URL(Uniform Resource Location)统一资源定位符。
区别:URI概念比较宽泛,D://xxx.jpg https//www.baidu.com/log.jpg
URL是URI的子集https//www.baidu.com/log.jpg
###URL构成
https://zzk.cnblogs.com/s?w=blog%3Awuyun-blog dd
http://news.baidu.com/ns?word=python&tn=news&from=news&cl=2&rn=20&ct=1
-协议:http https
-认证(了解):http代理 用户名、密码。
-域名:www.baidu.com
-文件层级:dir/L11/8.html 请求访问资源的路径
-参数:随请求发送的参数,键值对形式?Word=python&tn=news

GET POST

get:取服务器资源,绝大多数http请求都是get请求.
post:当前浏览器的信息传递到服务器,期望浏览器进行存储或计算,表单提交,有安全性需求的请求,服务器开销比get大。
表现形式区别:
-浏览器请求头request method看出。
-get请求URL中可以看到参数。post请求参数在http请求体中,URL中看不到,因此post请求更加安全。
-get请求URL有限制,不适合参数特别多和传输信息大
-get可以回退浏览器读缓存;post每次重新提交。

option 客户端请求操作服务器,已经被封装起来了。
(不常用)put 请求服务器存储资源,delete 请求删除,这两种请求都可以被post代替。

状态码

服务器响应的status code状态,表示请求成功或失败。
-200 成功
-304 重定向
-403 没有权限访问
-404 找不到资源
-500 内部错误,代码写错
-502 网关错误,路由问题,服务器压力大

session会话 和 cookie(小饼干)

http是无状态的。比如发送一个含有用户密码的post登录请求,服务器验证通过后返回权限才能浏览的页面,但是出于稳定和节省资源考虑,http发明时定义服务器不需要存储额外数据(访问者IP,用户名,密码),当第二次访问时,服务器不知道你已经登陆了。那么每次访问都需要用户名密码,显然不可能。
(面试)session cookie区别?
session 会话:浏览器跟服务器通讯的过程,几分钟、几小时,持续沟通的过程。
cookie:浏览器自带的小数据库,用来存储信息,(存储、用户名、密码、会话id),服务器response让客户端设置cookie。每次客户端请求服务器时会把同意域名下的cookie中的值带上。可以在Chrome开发者工具application中看到。

权限验证流程:
1.浏览器请求登录,携带用户名和密码信息。
2.cookie中的数据值可见,密码存到cookie当中有安全问题。
3.解决办法,服务器验证用户名密码,权限通过,根据用户信息生成一个哈希加密的字符串session-ID或token,形如’ie234tD14’,服务器会临时保存这个字符串.
4.服务器返回具体网页内容和session-ID,告诉浏览器把session-ID这个字符串存到cookie中.
5.浏览器每次访问都会带上cookie服务器验证cookie中的session-ID比对,如果存在说明用户已经登录,这样就可与保持会话持续

https

https:Hyper Text Transfer Protocol over Secure Socket Layer 基于安全套接字层的http协议,加密方式ssl tsl,防止http请求过程中被中间人抓取、攻击。更比http加安全。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值