网络协议TCP/IP、HTTP

网络协议

两台计算机要实现通讯必须遵守同一个规则,这就好比两个人交流,只会英文和只会中文的因为没有共同的语言(规则)根本就无法沟通,要使两台计算机能够正常通讯,两者必须遵守同样的规则,而这个规则就是就是网络协议。
那么这个规则,也就是计算机通信的网络协议是谁规定的呢,国际上有这么一个组织ISO(国际标准化组织),他定义了网络协议基本框架,叫做OSI模型。两台电脑在进行通讯时,要考虑很多很多的问题,例如A电脑如何找到B电脑,A电脑给B电脑什么类型的数据,A电脑怎么能收到B电脑的反馈等等,这些问题都需要一个标准,为了能够给以上问题分类设置标准,OSI模型进行了层次划分,每一层都有相应的协议去解决相应的问题。七层标准模型,如下:

应用层
表示层
会话层
传输层
网络层
数据链路层
物理层。

Socket

如果想要使传输的数据有意义,则必须使用到应用层协议。

应用层协议有很多,比如HTTP、FTP、TELNET等,也可以自己定义应用层协议。

WEB使用HTTP协议作应用层协议,以封装HTTP文本信息,然后使用TCP/IP做传输层协议将它发到网络上。”

而我们平时说的最多的socket是什么呢,实际上socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API)。

通过Socket,我们才能使用TCP/IP协议。

实际上,Socket跟TCP/IP协议没有必然的联系。

Socket编程接口在设计的时候,就希望也能适应其他的网络协议。

所以说,Socket的出现只是使得程序员更方便地使用TCP/IP协议栈而已,是对TCP/IP协议的抽象,

从而形成了我们知道的一些最基本的函数接口,比如create、listen、connect、accept、send、read和write等等。

网络有一段关于socket和TCP/IP协议关系的说法比较容易理解:

“TCP/IP只是一个协议栈,就像操作系统的运行机制一样,必须要具体实现,同时还要提供对外的操作接口。

这个就像操作系统会提供标准的编程接口,比如win32编程接口一样,

TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。”

TCP/IP协议


What
OSI网络通讯协议模型,是一个参考模型,参考于他的TCP/IP协议才是目前网络上通用的网络通讯协议,接下来先了解一下TCP/IP协议。
通常所说的TCP/IP协议,其实是一个协议集合,这个集合里面包含了网络通讯所需的所有协议,里面不仅有TCP(传输控制协议)、IP(网际协议),还有UDP、ICMP、RIP、TELNET、FTP、SMTP、ARP、TFTP等许多协议,但因为TCP协议和IP协议是保证数据完整传输的两个基本的重要协议,所以该协议集合就被命名为TCP/IP协议了。
TCP/IP协议的制定是参考于OSI模型的,但并没有严格按照OSI规定的七层去划分,而是划分了四层:
应用层
传输层
网络层
网络接口层

OSI和TCP:IP对比图.png

目前我们已经知道TCP/IP协议分为四个层次,我举个例子简单说明一下各个层的作用,拿寄送邮件举例,A寄邮件给B,A关心的是用什么格式写什么内容给B(应用层内容),是寄挂号信(信件丢失会赔偿)还是寄平信(信件丢失不赔偿)(应用层内容),A是不会关注邮件传送过程中采用了哪条路线,邮递员是如何把信地道B手里的(网络层,网络接口层)。接下来再详细讲一下应用层和传输层。
传输层 传输层有多个协议,但最主要的是TCP和UDP协议。两者的区别在与TCP协议需要接收方反馈,传输更可靠,而UDP协议虽然不需要反馈,但传输的速率比较高。
,至于具体采用哪种方式,需要具体问题具体分析,在不可靠的网络传送过程中一般选择TCP传送方式,在讲求效率或者不在乎传输失误的情况下可以选择UDP方式来提高传输速率。

应用层 应用层协议有很多,每一个协议代表一种类型的服务。HTTP协议,万维网服务
FTP协议,文件传送服务
POP3协议,邮件服务

HTTP协议

HTTP介绍
HTTP协议,属于应用层,是一种超文本传输协议。

HTTP协议的作用
规定客户端和服务器之间的数据传输格式

让客户端和服务器能有效地进行数据沟通

为什么要选择使用HTTP协议:
1.支持客户/服务器模式。

2.简单快速。客户向服务器请求服务时,只需传送请求方法和路径,客户端与服务器之间的请求方法常用的有GET、HEAD、POST。另外,由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快因为HTTP协议简单,所以HTTP服务器的程序规模小,因而通信速度很快。

3.灵活。HTTP允许传输任意类型的数据,正在传输的类型由Content-Type加以标记。

4.无连接。限制每次链接只处理一个请求,服务器对客户端的请求做出响应后,马上断开链接,这种方式可以节省传输时间。

5.无状态。HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

采用HTTP向服务器请求数据常用方式

  1. GET请求。get是获取数据的意思,数据以明文在URL中传递,受限于URL长度,所以传输数据量比较小。比如我在百度上搜索FMDB,那么他相应的url便是https://www.baidu.com/s?ie=UTF-8&wd=FMDB,我要搜索的内容在url是可见的,如果我要搜索的内容过长,便会产生异常,不信的话,你可以将FMDB换成一个比较长的字符看下效果。

  2. POST请求。post是向服务器提交数据的意思,提交的数据以实际内容形式存放到消息头中进行传递,无法在浏览器url中查看到,大小没有限制。在请求URL后面以?的形式跟上发给服务器的参数,多个参数之间用&隔开,比如http://ww.test.com/login?username=123&pwd=234&type=JSON

3.GET和POST的选择
如果要传递大量数据,比如文件上传,只能用POST请求
GET的安全性比POST要差些,如果包含机密\敏感信息,建议用POST
如果仅仅是索取数据(数据查询),建议使用GET
如果是增加、修改、删除数据,建议使用POST

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容

  • 网络协议 两台计算机要实现通讯必须遵守同一个规则,这就好比两个人交流,只会英文和只会中文的因为没有共同的语言(规则...
    空白Null阅读 2,185评论 0 4
  • 网络协议两台计算机要实现通讯必须遵守同一个规则,这就好比两个人交流,只会英文和只会中文的因为没有共同的语言(规则)...
    任梦RM阅读 744评论 0 1
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,051评论 0 8
  • 1.这篇文章不是本人原创的,只是个人为了对这部分知识做一个整理和系统的输出而编辑成的,在此郑重地向本文所引用文章的...
    SOMCENT阅读 13,053评论 6 174
  • 无言坐看云行意, 空岸独寻竹叶舟。 岁日游归应孝祀, 百年终老对狐丘。 谁门慈母观云雁, 有见家书何所求。 华发已...
    风信子之歌阅读 256评论 6 19