读书笔记--《图解http》

TCP/IP

  • TCP/IP协议族里最重要的一点就是分层,TCP/IP分为四层:应用层、传输层、网络层、数据链路层。
    • 应用层决定了向用户提供应用服务时通信的活动。HTTP协议、FTP、DNS
    • 传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。TCP(传输控制协议)、UDP(用户数据报协议)
    • 网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数据单位,该层规定了通过怎样的路径(传输路线)到达对方计算机,并把数据包传送给对方。IP
    • 链路层用来处理连接网络的硬件部分。包括控制系统、硬件的设备驱动、NIC、光纤等物理可见部分。


      Alt text
      Alt text
  • IP协议的作用是把各种数据包传送给对方,而要保证确实传送到对方则需要满足IP地址和MAC地址的匹配。
    • IP地址指明了节点被分配到的地址。
    • MAC地址是指网卡所属的固定地址。
    • IP地址可以和MAC地址进行配对。
  • TCP提供可靠的字节流服务,字节流服务是指为了方便传输将大块数据分割成以报文段为单位的数据包进行管理。为了准确将数据无误地传送到达目标处,TCP协议采用了三次握手策略。分别是请求连接、响应、开始传输。


    Alt text
    Alt text
  • url全称是Uniform Resourse Location。
  • 利用缓存代理服务器可以避免多次从源服务器转发资源,当客户端发送相同请求时缓存代理服务器可直接发送缓存的资源,避免请求源服务器。

HTTP报文

  • HTTP是一种无状态协议,不保留之前一切的请求或报文的信息。
  • Cookie会根据从服务端发送的响应报文内的一个叫做Set-Cookie的首部字段信息,通知客户端保存Cookie。当下次客户端再往该服务器发送请求时,客户端会自动在请求报文上加上Cookie值后发送。
  • 为了传输大容量数据会将数据分成多个块(chunk),每一块都会用十六进制来标记块的大小,而实体主题的最后一块会使用“0(CR+LF)"来标记。

HTTP状态码

  • 状态码类别
    • 1xx:信息性状态码:接受的请求正在处理
    • 2xx:成功状态码:请求正常处理完毕
    • 3xx:重定向状态码:需要进行附加操作以完成请求
    • 4xx:客户端错误状态码:服务器无法处理请求
    • 5xx:服务器错误状态码:服务器处理请求出错
  • 当301、302、303相应状态码返回时,几乎所有的浏览器都会把POST改为GET,并删除请求报文内的主体,之后请求会自动再次发送。
  • 304状态码是当客户端发送附带条件请求时服务器端允许请求访问资源,但因发生请求未满足条件的情况后直接返回304 Not Modified。返回时不包含任何响应的主体部分。
  • 使用Wireshark可以获取HPPT协议的请求和响应内容,并对其进行解析。

HTTPS

  • 通常HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信。SSL全称Secure Socket Layer 安全套接层。采用SSL后,HTTP就拥有了HTTPS的加密、证书、和完整性保护这些功能。
  • SSL采用公开密钥加密,加密算法是公开的,而密钥是保密的,加密和解密都需要用到密钥。
  • 公开密钥加密的方式很好地解决了共享密钥加密的困难。公开密钥使用一对非对称的密钥,一把叫做私有密钥一把叫做公开密钥。使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方法,不需要发送用来解密的私有密钥,也不用担心密钥被攻击者窃听而盗走。解密只能够用私有密钥解密,解密过程是在对离散对数进行求值,只有共有密钥是不行的。
  • 数字证书是为了证明给客户端收到的公开密钥是正确的。服务器会将这份公钥证书发送给客户端以进行公开密钥加密方式通信。多数浏览器会在内部植入常用认证机关的公开密钥,以便客户端进行验证。


    Alt text
    Alt text

    Alt text
    Alt text

webSocket

  • webSocket是建立在http基础上的全双工通信标准,一旦Web服务器与客户端之间建立起WebSocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。通信过程中可以互相发送JSON、XML、HTML或图片等任意格式的数据。
  • 为了实现WebSocket通信,需要用到http的Upgrade首部字段,告知服务器通信协议发生改变,以达到握手的目的。
  • 对于WebSocket的请求返回状态码101 Switching Protocols的响应。

UDP与TCP

  • TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。TCP是面向连接的,有比较高的可靠性。TCP连接一旦建立,所有的会话都基于连接完成,如果客户端要与另一个TCP服务通信,需要另创建一个套接字来完成连接。

  • UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。UDP中一个套接字可以与多个UDP服务通信,在网络差的情况下会产生丢包问题,常用于视频音频等传输。

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

推荐阅读更多精彩内容