python http协议获取对方的ip地址_http协议(一)基础知识

参考:老张

http://link.zhihu.com/?target=https%3A//www.cnblogs.com/imyalost/p/5627816.html

参考书籍——《图解http》

06de7d8c3baa9a20b8103dda2710231c.png

当我们在浏览器的地址栏中输入网址,然后点击回车,接着,浏览器就会呈现出我们需要的web界面,那么,这个界面是怎么产生的?

web的界面是根据我们输入的URL(网址、地址),浏览器从服务器端获取对应的文件资源等信息,然后显示在浏览器上面。

像这种通过发送请求获取服务器资源的web浏览器等,都可以称之为客户端(client)

web使用http(超文本传输协议)协议作为规范,来完成从客户端到服务端等一系列的运作流程,而协议指的就是规则的约定,可以说,web是建立在http协议上进行通信的

关于http的产生和发展,这里就不赘述了,有兴趣的童鞋可以百度。。。。。。

b887b970b8c2efc5ede5ee3d9d79921a.png

为了理解http,有必要简单介绍下tcp/ip协议族

计算机与网络设备之间互相通信,双方就必须基于同样的方法。比如:如何发现通信目标、由谁发起通信、使用什么语言通信、怎么结束通信都需要事先确定,所有这些都需要一种规则,

这就是协议。协议中存在多种的内容;从电缆的规格到ip地址的选定方法,寻找异地用户的方法,建立通信的顺序,以及web页面显示需要处理的步骤等等

像这样把与互联网相关联的协议集合起来统称为tcp/ip

tcp/ip的分层

tcp/ip很重要的一个特点就是分层。按照层次分为以下四层:应用层,传输层,网络层和数据链路层

8229fe2f5cd0ebdb6e6a670e6ad047b3.png

分层的好处:如果互联网只由一个协议统筹,那么某一地方出问题,整体都会出现问题,无法使用;分层后,只需替换出现问题的或者需要修改的即可,而且分层后针对具体的设计也变得更为简单

97679547bb571643df431c341f058bdd.png

应用层:体系的最高层,应用进程间通信交互的规则

tcp/ip协议族预存了各类通用的应用服务,比如:

ftp:文件传输协议

dns:域名系统协议

http:万维网应用协议

smtp:电子邮件协议

以上几种是常用的几种,还有很多其他的协议,感兴趣的可以找找其他专业的书籍看看

传输层:提供处于网络连接中的两台计算机间的数据传输,其中包括tcp和udp两种性质不同的协议

tcp:传输控制协议,传输的单位为报文段,提供面向连接的,可靠的数据传输服务

udp:传输单位为用户数据报,它是尽最大努力的提供数据传输服务,不保证可靠性

网络层:又名网络连接层

用来处理在网络上流动的数据包(封装)。数据包是网络传输的最小数据单位。该层规定了通过怎样的路径到达对方计算机并把数据包传给对方

链路层:又名数据链路层,网络接口层

处理连接网络的硬件部分。比如控制操作系统、硬件的驱动、网络适配器、光钎等

数据的封装

用户端发送一个请求,从应用层开始,一直到链路层,每一层都会被打上该层所属的首部信息;反之,接收端在层与层之间传输时,每经过一层会去掉该层的首部信息,这种做法叫做封装

与http密切相关的协议

IP协议:位于网络层,作用是把各种数据包传送给对方,而要准确的把数据传送给对方,就需要满足各类条件,其中有2个很重要的条件:ip地址和mac地址

ip地址相信有点基础的人都知道,就是节点被分配到的地址,mac地址则是指网卡所属的固定地址,ip和mac地址可以进行配对

ip间的通信依赖于mac地址,在信息传输中,有时候由于中转太多,因此会采用ARP协议,这是个用来解析地址的协议,通过ip地址就可以反查出对应的mac地址

tcp协议:位于传输层,确保传输的可靠性

数据传输中为了传输方便,会将大块数据分割成报文段,而tcp协议能确认数据最终是否传送给对方

为了准确传输,传输中采用了三次握手策略(这种手段可以理解为多次确认,来确保数据传输的可靠性)

dns协议:负责域名解析,位于应用层,提供域名到ip地址间的解析

通过域名查找ip地址,或者逆向从ip地址反查域名

URL和URI

URL:统一资源定位符:表示资源的地点,具体指向(门牌号)

URI:统一资源标识符:用字符串标识某些互联网资源(该门牌号的地方具体有什么资源)

URL是URI的子集

b707978b4890b780ba137d5685dec57e.png
d67ad269699c0f663f049ab4c4bf0fc7.png

感恩有你

想要获取最新的最有趣的编程资讯、知识,视频,那么就关注我们。

e86ce8067aa90ba8b924db5e4a3d8641.pnga5082112d4115d13072bf3660bd723f2.gif

在Unity进行水墨风3D渲染的尝试

从零开始的简单光线追踪示例

在Unity开发中为什么你维护五六百行代码就感觉力不从心?

您看此文用

d02873ea0f55aa3cdbc2183ce3b15a19.gif9b12985220a1f07b07d89df348b8376e.gif·d1ea54c30f142de398995618f7873d1d.gif148acaa80444c46fe1c7e5caed1d8047.gif

秒,转发只需1秒呦~

那个,顺便星标一下再走呗!

5f0b1f2efaa83e3029a9e525f7b05725.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/304823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TIOBE编程语言排行榜,Python遥遥领先

在这个快节奏的时代,要想走在潮流前端,你需要用最有效的方式,最有效率的工具,学习最有用的知识。而如今人工智能和数据分析爆发,python就是一颗冉冉升起的新星,因为简单易用和广阔的可能性,不仅…

Dapr是如何简化微服务的开发和部署

基于微服务设计模式的现代应用程序面临着一系列挑战。微服务需要有一个强大的服务发现机制来实现动态连接。它们需要松散耦合,实现自主性和独立缩放。微服务需要支持多种语言,其中每个服务都是以最合适的语言、框架和运行时实现的。尽管采用容器和编排引…

table 内 下拉列表 被遮挡_一个简洁、有趣的无限下拉方案

本文主旨长列表渲染、无限下拉也算是前端开发老生常谈的问题之一了,本文将介绍一种简洁、巧妙、高效的方式来实现。话不多说,看下图,也许你可以发现什么?无限下拉示意图不知你是否从上面这张图中注意到了什么,比如只是…

天龙八部服务器维护后提BB,天龙八部:宠物比号值钱?玩家哭诉附体BB半年也卖不出去...

说到天龙八部的附体宝宝,相信许多爱美的玩家基本上都人手一只。附体后的增益多不多无所谓,首先附体后身上有龙、凤凰、蝴蝶等之类的特效,让许多玩家觉得游戏中角色颜值增添不少,当然一只属性不错的附体珍兽,也能够给游…

写了 15 年代码,总结出提升 10 倍效率的三件事

译者:roy 【译者注】本文作者 Matt Watson 已经写了超过 15 年的代码,也由此总结出了提升 10 倍效率的三件事。Matt 表示,一个 10 倍效率的开发人员很快就知道了他们需要做什么,要问什么问题,什么时候不问问题&#xf…

服务器不知道怎么回事安卓系统很卡,为什么安卓系统很容易变卡?该怎么解决?看完长知识了...

手机是我们现代生活的必备之物,什么都可以没有到就是不能没有手机,如今市面上的手机的手机不是安卓系统就是ios系统,安卓系统的手机虽然便宜但是有一个诟病,那就是安卓的手机会越用越卡,不管你手机配置是多么的高&…

EntityFramework Core自动返回SQL语句

【导读】给各位拜年了,开年第一篇,后续我们介绍EF Core 5.0相关新特性自动返回SQL语句当执行LINQ查询时,EF Core 5.0提供了ToQueryString扩展方法返回生成的SQL语句比如,执行如下LINQ查询var name "jeffcky"; var user…

怎么用ai做出适量插画_怎么用最简单的方法,做出最炫酷的数据可视化图表?...

如果要问数据怎样做才能显得最装逼,那么答案一定只有一个:“数据可视化”!看上去也很炫酷对不对,其实上面的可视化图表其实并不复杂,很多人推荐的Python、R语言、Tableau等专业数据分析工具几乎都能很轻松的实现。但是…

stm32烧不进去程序_STM32的FLASH和SRAM的使用情况分析

点击上方蓝字关注我哦~01前言STM32片上自带FLASH和SRAM,简单讲FLASH用来存储程序的,SRAM是用来存储运行程序中的中间变量。本文详细分析下如何查看程序中FLASH和SRAM的使用情况。本文开发工具: keil5芯片: STM32F105VCT602FLASH和SRAM介绍FLA…

每一个人都应该学习电脑编程,因为它会教你如何思考

扎克伯格11岁开始学习编程,创办Facebook;比尔盖茨13岁学习编程,创办微软……乔布斯说:“每一个人都应该学习电脑编程,因为它会教你如何思考。" 现在在北京上海,顶级的IT工程师,年薪至少是百…

GitHub Actions 支持 skip ci 了

GitHub Actions 支持 "skip ci" 了IntroGitHub Actions 作为 GitHub 官方的 CI 支持,很多开源项目已经在使用 Actions 来做项目的 CI 了,但是一直以来有一个痛点,就是不支持跳过 CI,其他的 CI 大多都可以通过在 commit …

layui上传报错会有哪些原因_一到冬天,为什么会比别人更怕冷?有哪些原因?...

冬天已经正式来到,气温也是越来越低了,早晚的时候就能明显的感觉到寒风凛凛。有很多人到了冬天以后就很怕冷,风一吹过来,就觉得浑身都冰冷。明明已经穿了很多的衣服,还是会觉得很冷,只有在空调、暖气底下&a…

干货|MIT线性代数课程精细笔记[第一课]

1知识概要本节开始,我们一起来学习线性代数的有关知识,首节我们从解方程谈起,学习线性代数的应用之一就是求解复杂方程问题,本节核心之一即为从行图像与列图像的角度解方程。 2方程组的几何解释基础 2.1 二维的行图像 我们首先通…

element 方法返回的boolean被当成字符串了_13个需要知道的方法:使用 JavaScript 来操作 DOM...

作者:Milos Protic 译者:前端小智来源:impressivewebs.DOM 或文档对象模型是 web 页面上所有对象的根。它表示文档的结构,并将页面连接到编程语言。它的结构是一个逻辑树。每个分支结束于一个节点,每个节点包含子节点、…

很遗憾,总对工作挑挑拣拣的家伙,一般结局都不会太好

这是头哥侃码的第233篇原创在过去的五年里,我最怕遇到两件事。一是失眠,一个人半夜醒来,瞬间毫无困意,只能瞪大眼睛望着天花板数羊,等待着黎明的到来。二是每到春节之前,在进行团队年度绩效评估和年终奖发放…

为什么技术与产品沟通起来总是那么痛苦

“如果产品经理过一会又打电话说再买个“面包”。。。那就折腾死程序员了。” 为什么产品与技术沟通起来总是那么痛苦?有时候你觉得很简单的一件事,在程序的世界里很有可能变得纷繁复杂。 编程语言,它终归是一门语言,只是它的使用…

python中双重循环_python中双循环

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 如果你对python中的for循环不是很清楚,请看看这篇文章:for循环控制语句——菜鸟的py…

Dapr 交通流量控制示例

Dapr 已在塔架就位 将发射新一代微服务牛年 dotnet云原生技术趋势Dapr是如何简化微服务的开发和部署前面几篇文章都是从大的方面给大家分享Dapr 能帮助我们解决什么问题,微软从开源到1.0 也是经过2年的时间开发,因此我写了这几篇文章也只能是带领大家对D…

apt-get 更新指定软件_GrandPerspective for mac(磁盘管理软件)

GrandPerspective for mac是一款Mac平台上的磁盘管理软件,GrandPerspective Mac版用图形直观显示磁盘和指定目录使用状况。最占空间的文件/目录一目了然,便于管理你的Mac磁盘空间。GrandPerspective for Mac下载带给大家,欢迎大家前来下载&am…

月薪多少才算80后中的人生赢家?他们的经济、婚姻、生活方式是怎样的

如今,80后已成为职场、家庭、社会的中流砥柱。在这一代人中,现在月薪多少才算跑赢同龄人的“人生赢家”呢? 近期,复旦大学人口与发展政策研究中心、复旦大学社会科学数据研究中心最新发布的“80后的世界——复旦大学长三角社会变迁…