# -*- coding: utf-8 -*- # @Time : 2018/11/15 14:31 # @Author : 王也 # @Email : # @File : HTTP协议.py ##网络和HTTP协议 ========= 协议(protocol):两台计算机互相通讯,需要定义规则,如何发现对方,谁先发起通讯,通讯语言规则,结束通讯标识。 ##TCP/IP协议族 协议族:不止一个协议!一对协议的总称 - TCP:传输控制协议 - IP:网络地址 - http: hyper text tansfer protocol 超文本传输协议。html - DNS 域名解析 - PPPoE:拨号上网,连接网络服务商,例如联通宽带,沃世界拨号上网 - FTP : file transfer 文件传输。 - ICMP SNMP:mail邮件。 - FDDI :光纤 - IEEE 802.3:以太网(局域网)。 802.11无线网卡WiFi。 - ARP : 无线解析协议. ## 网络通讯 客户端→ 协议转发 到各个节点路由→服务器端 客户端:个人电脑 服务器端:别人的电脑,提供网站服务内容的平台。 ## http 协议 形如:http://www.baidu.com 浏览器会自动默认省略http前缀。 网页是由HTML书写的。http协议非常流行。 ### 三次握手 http 协议为了准确的送达和请求数据,不考虑规则细节,宏观上主要是三个步骤 1.发送SYN,synchronize同步标识。目的看网络通不通,服务器是否能够提供服务。 2.服务器端 发送 syn/sck ackonowledgement 标识。告诉客户端我准备好了,你可以请求我。 3客户端收到syn/ack标识后,开始请求 ### (课外)http 报文结构 ## dns 协议 域名domain:形如www.baidu,com www.lowo.com ip地址:形如192.168.221.73 47.222.57.222 比较:域名 好像人的名字,优点好记,ip地址就好像人的身份证,优点易被计算机处理。 本来计算机网络就是靠IP地址来区分和访问。问题一,当你访问的网站多达上百个的时候,数字组成的IP地址很难记住,问题二,公司升级或更换电脑,迁移部署在服务器的网站上时,ip地址变化,不容易通知老客户网站,导致老客户访问不了网站。不好维护。所以发明了域名,域名由英文字母和数字组成,好记。建立域名到IP地址的映射关系。www.baidu.com→47.222.57.222 如果百度换服务器,只需要维护修改映射关系,普通仍然访问域名不需要变化。 DNS: domain name server域名转换协议 DNS服务器:各个网站,域名转换P的关系需要记录到一个服务器上服务大众。 ###流程、 需求: 访问taobao.com 1.客户端访问当地运营商的DNS服务器,请求查询taobao.com的ip地址 2。DNS服务器返回taobao.com对应的IP地址 3. 根据IP地址请求taobao服务器 ### hosts 文件 打开一个网页 有信息有图片,请求几十次,如果每一次都查询DNS服务器,将消耗资源,所以浏览器会缓存映射关系。 电脑本地也有一个DNS关系缓存配置文件:hosts文件。用管理员权限笔记本打开可以编辑。、hosts文件里的定义优先级最高,如果浏览器访问一个网站,会先去hosts文件查询,如果查到ip直接访问,如果没查到,再去查询DNS服务器。 ### PYCharm破解原理 (请优先支持正版) 百度‘lanyu’[itellij破解码]((https://www.baidu.com/link?url=ErAYrqFtWKAYiE2_-PlCCCOmTULwlQUJYxd5WgvN-ZaNqHe_rGmBns9J45hTxCu4&wd=&eqid=fd78cf0d000221c7000000035bed3316) 如果直接把激活码放入PYCHARM激活,会几秒后提示失败。原理pycharm会每隔一段时间自动请求官方服务器检验激活真伪,假激活码不在官方服务器中,服务器就会通知客户端退出。 所以修改hosts文件,添加“0.0.0.0 account.jetbrains.com”这样pycharm后台验证请求时,不会请求真的官方网站,而是会请求0.0.0.0特殊ip地址,请求会被丢弃,这样假激活就可以长时间使用。 ### 翻墙的原理 DNS污染:运营商控制着DNS服务器,修改了一些网站的映射信息。。例如WWW.google.com→67.22.22.22 把真实的IP地址置换一个错的IP地址编程www.google.com→0.0.0.0,这是用户就无法访问 其他的GFW goverment fire 。 ### 翻墙的一种方法 修改hosts文件,因为墙的原理污染DNS服务器,hosts文件优先级更高。所以可以网上找别人整理好的hosts文件,内容是常用国外网址和对应的真实IP地址。优点:免费;缺点:突破封锁能力一般; 寻找hosts文件: giehub 码云上搜索“hosts” ###局域网和ARP ARP协议:地址解析,发现局域网中的其他电脑地址并探测。 IP地址:网络分配的一个地址,就好像大街上的门牌号是由国家分配的。 Mac地址:物理地址,形如:00-0E-01-AA-12-12,每一块网卡有一个全球唯一的编号。电脑网络硬件唯一标识。 ###TCP协议 transfer control protocol 传输控制协议。 报文: 按照一定结构封装的数据信息。例如http报文包含信息目的地IP、请求方法、请求URL地址等 http协议底层基于TCP协议。宏观上看,http报文通过三次握手发送到服务端。底层上http请求会先拆分为一段段的TCP报文。TCP报文包含请求地址、请求信息等。当服务收到tcp报文后会再组合成http报文。 场景:http协议、网页信息 ###UDP协议 user datagram protocol 用户数据包(报)协议。 客户端与服务端直接传数据,不需要三次握手和校验。 所以UDP协议可能数据会丢失或传输错误。 场景;视频、游戏数据。所以少量数据包丢失不影响大致体验 ###IP协议 IP地址:形如 45.222.222.21,由四个字节组成,每一段的范围0-255. ###分类 A类:(1.0.0.0-126.0.0.0)(默认子网掩码:255.0.0.0或 0xFF000000) 第一个字节为网络号,后三个字节为主机号。该类IP地址的最前面为“0”,所以地址的网络号取值于1~126之间。一般用于大型网络。 B类:(128.1.0.0-191.255.0.0)(默认子网掩码:255.255.0.0或0xFFFF0000)前两个字节为网络号,后两个字节为主机号。该类IP地址的最前面为“10”,所以地址的网络号取值于128~191之间。一般用于中等规模网络 C类:(192.0.1.0-223.255.255.0)(子网掩码:255.255.255.0或 0xFFFFFF00)前三个字节为网络号,最后一个字节为主机号。该类IP地址的最前面为“110”,所以地址的网络号取值于192~223之间。一般用于小型网络 D类:是多播地址。该类IP地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户[1] 。 E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。 回送地址:127.0.0.1。 也是本机地址,等效于localhost或本机IP。 一般用于测试使用。例如:ping 127.0.0.1来测试本机TCP/IP是否正常。 ###特殊地址 127.0.0.1 localhost,本地IP地址, 代表你自己正在操作的电脑。 0.0.0.0,空地址,请求都会被抛弃 169.254.*.*,保留地址,DHCP服务无法分配。 192.168.***.**,局域网地址 ###局域网地址 10开头。 192.168开头的 例如:192.168.*.*, 对应二进制 1100000 10101000 00000001 0000000-1111111 网关:一般为192.168.1.1,一个局域网的门口,一般给这个屋子的路由器用 支持局域网的ip:196.168.1.2-192.168.1.254 (可支持两百多台机器) 下一间屋子就可以换下第三段的数字继续 192.168.2.* 同一局域网内:192.168.221.50→192.168.221.73 跨局域网段(路由器连接并允许沟通)192.168.221.50(教室某同学)→192.18.221.1(321教室的路由器网关)→192.168.2221.1(320教室路由器)→192.168.222.30(320教室某同学) 同一局域网内的电脑超过了256台电脑:解决方案,IP地址一共有32位,前24位固定,后面的8位共256钟可能可能分配局域网电脑和网关,前面的固定位数减少,后面的组合为数增加,所以出现10开头的局域网ip段支持更多电脑 子网掩码: 同一个局域IP地址,不知道固定的是多少位,自由组合多少位,产生歧义。 例如;192.168.221.73 二进制11000000 10101000 11011101 01001001 前24位固定 子网掩码 11111111 11111111 11111111 00000000 固定用1表示 子网10进制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 ### ping tracer 命令 ping www.baidu.com 服务器返回几次商量数据、传输用时m/s,看网路通不通(个别服务器因为安全原因禁止ping) tracert www.baidu.com 会跟踪路由器节点跳转详细的信息 ###(了解)IPv6 ipv4出去一些特殊网段,加上网络在全球非常流行,每个人都有手机电脑等网络设备,ipv4地址紧缺不够用,ipv6正在推广中 ###整体流程 1.客户端浏览器想请求一个页面 2.请求DNS服务器获得对应地址 3.构造http请求报文 4.http拆分成多个txp报文 5.tcp报文通过包含的ip信息,跳转路由器 6.服务器收到tcp报文 7.服务器tcp报文组装还原成http报文信息 8.服务器根据http请求返回相应资源,返回相应内容。传输过程同上。 ### 深入http协议(浅析reque和respone) 请求request 属性 - 请求方法:GET、POST - host:目标地址 - connection:keep alive或指定过期时间 - cookie 比方,浏览器自带的小数据库(存储空间) - user-agent:用户的浏览器信息 响应 response: 属性: - Content type :内容类型(html/css)字符编码(utf-8,gb2312) - Date: 时间 - Set-cookie:服务端让浏览器存储的信息 - status-code:响应码。判断成功或失败原因 - Content lengh :网页长度 - 返回的具体信息:HTML、CSS、JS、PNG
浅析http协议
最新推荐文章于 2021-01-13 09:53:08 发布