http协议

网络和http协议理论

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

##TCP/TP协议族
协议族:不止一个协议,一堆协议的总称。

  • TCP UDP:传输控制协议。
  • TP:网络地址
  • HTTP:heper text transfer protocol 超文本传输协议。html
  • DNS:域名解析协议
  • PPPoE:拨号上网、连接网络服务器。例如联通宽带我世界拨号上网。
  • FTP:file transfer 文件传输。
  • ICMP SNMP:mail 邮件
  • IEEE 802.3:ethernet 以太网,局域网。802.11无线网卡WiFi。
  • ARP:地址解析协议。

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

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

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

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

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

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

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

##流程
需要:访问taobao.com
1.客户端访问当地运营商的DNS服务器。请求查询taobao.com的ip地址。
2.DNS服务器返回taobao.com的ip地址。
3.根据ip地址请求taobao服务器

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

##pycharm破解原理
百度“lanyu”itellij破解码

如果直接把激活码放入pycharm激活,会几秒提示失败,原理pycharm会每隔一段时间自动请求官方服务验证码激活真伪,

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

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

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

##ip协议
ip地址 形如45.222.222.21,由4个字节组成,每一段的范围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~233之间。一般用于小型网络。
D类:是多播地址。该类Ip地址的最前面为“1110”,所以地址的网络号取值于224~239之间。一般用于多路广播用户[1].
E类:是保留地址。该类IP地址的最前面为“1111”,所以地址的网络号取值于240~255之间。
回送地址:127.0.0.1。 也是本机地址,等效于localhost或本机IP。
##特殊地址
127.0.0.1 localhost,本地ip地址,代表你自己正在操作的电脑。
0.0.0.0 ,空地址,请求都会被丢弃。
169.254*.* ,保留地址, dhcp服务无法分配。
192.168.. ,局域网地址。

###局域网地址
10开头的。192.168开头的。
例如192.168.1.* , 转换成二进制 前24位固定,后8位排列组合分配给网段内机器。
对应二进制 11000000 10101000 00000001 00000001-11111111
网关:一般 192.168.1.1 ,一个局域网段的门口。一般给路由器使用。
支持的局域网ip:192.168.1. ---- 192.168.1.254,两百多台机器。
下一间屋子就可以换下第3端数字继续 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 11011101 01001001 前24位固定
子网掩码 11111111 11111111 11111111 00000000 固定用1表示
子网十进制 255.255.255.0 也就是说上面局域网ip 192.168.2221部分是固定的。

###dhcp协议
DHCP协议:因为配置静态ip比较麻烦和专业。所以出现了dhcp动态dns分配协议。路由器如果开启dhcp服务,那么会为接入局域网的电脑设备自动分配局域网ip、网关、子网掩码。优势是比较方便。相关设置dhcp的ip池 100-150 最多支持50台,设置ip过期时间。ip过期后会重新分配ip。
静态ip:如果有更精细的需求,应该手动配置静态ip。
###ping tracer命令 百度“IP”
ping www.baidu.com
服务器返回几次少量数据、传输用是ms,看网络通不通。(个别服务器安全原因禁止ping)
tracert www.baidu.com 户跟踪路由节点跳转的详细信息。
作业(选做):tracert可视化工具、提供节点ip对应的运营商信息。
百度“ip”:查看自己电脑的公网ipv4地址。-

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

##深入http协议
###requsts和resp
请求 request

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

响应 response
属性:

  • Content-Type:内容类型,字符编码
  • Data:时间
  • 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/logo.jpg,
URL是URI的子集https://www.baidu.com/logo.jpg 。

URL构成

https://zzk.cnblogs.com/s?w=blog%3Awuyun-blog dd

  • 协议:http https
  • 认证(了解):http代理 用户名、密码。
  • 域名:www.baidu.com
  • 文件层级:dir/L11/8.html 请求访问资源的路径
  • 参数:随请求发送的参数。键值对形式?Word=Python&tn=news
    ###GET POST
    get:取资源,绝大部分http请求都是get请求。
    post:浏览器信息传递到服务器,期望服务器进行存储或计算。表单提交,有安全性要求的请求。
    表现形式区别:浏览器请求头method中看出。

区别(面试题)

  • 浏览器请求头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发明时定义服务器不需要存储额外数据(访问者、用户名、密码)。当第二次访问时,服务器不知道你已经登录了。那么每次访问都需要输入用户名密码,显然不可能。
(面试题)session cookie区别?
session 会话:抽象概念,浏览器跟服务器通讯的过程,几分钟,几小时,持续沟通的过程。
cookie:浏览器自带的一个小数据库,用来存储信息,(存储 用户名、密码、会话id)。服务器response让客户端设置cookie。 客户端请求服务器会把同一域名下的cookie中的值给带上。可以再chrome开发者工具application看到。
权限验证流程:
1.浏览器请求登录,携带用户名密码信息。
2.cookie中的数据值可见,密码存到cookie有安全问题。
3.解决办法,服务器验证用户名密码,权限通过,根据用户信息生成一个哈希加密的字符串,形如’ie234tDI45DKF566JD’,服务器会临时保存这个字符串。
4.服务器返回具体网页内容和session_id这个字符串存到cookie当中。
5.浏览器每次访问时都会带上cookie。服务器验证cookie中的session_id比对,如果存在说明用户已经登录。这样就可以保持会话持续。

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

###代理服务器
我的电脑 → 中介电脑 →目的网页
场景:科学上网。爬虫。
###ipv6
ipv6。ipv4除去一些特殊网段,加上网络在全球非常流行,每个人的都有手机电脑都等网络设备,ipv4地址紧缺不够用,ipv6地址正在推广中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章