浅析http协议

# -*- 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
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道长王也

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值