HTTP协议学习笔记(一)菜鸡的学习之旅

一、TCP/IP协议族各层的作用

1)应用层

应用层决定了向用户提供应用服务时通信的活动。
TCP/IP协议族内预存了各类通用的应用服务。比如,FTP (File
Transfer Protocol,文件传输协议)和DNS (Domain Name System,域
名系统)服务就是其中两类。
HTTP协议也处于该层。

2)传输层

传输层对上层应用层,提供处于网络连接中的两台计算机之间的数据
传输。
在传输层有两个性质不同的协议: TCP ( Transmission Control
Protocol,传输控制协议)和UDP (User Data Protocol,用户数据报
协议)。

3)网络层(又名网络互连层)

网络层用来处理在网络上流动的数据包。数据包是网络传输的最小数
据单位。该层规定了通过怎样的路径(所谓的传输路线)到达对方计
算机,并把数据包传送给对方。
与对方计算机之间通过多台计算机或网络设备进行传输时,网络层所
起的作用就是在众多的选项内选择一条传输路线。

4)链路层(又名数据链路层,网络接口层)

用来处理连接网络的硬件部分。包括控制操作系统、硬件的设备驱
动、NIC (Network Interface Card,网络适配器,即网卡),及光纤等
物理可见部分(还包括连接器等一切传输媒介) 。硬件上的范畴均在
链路层的作用范围之内。

在这里插入图片描述在这里插入图片描述

二、IP协议

IP协议的作用是把各种数据包传送给对方。而要保证确实传送到对方
那里,则需要满足各类条件。其中两个重要的条件是IP地址和MAC
地址(Media Access Control Address)。
IP地址指明了节点被分配到的地址,MAC地址是指网卡所属的固定
地址。IP地址可以和MAC地址进行配对。IP地址可变换,但MAC
地址基本.上不会更改。

三、TCP协议

按层次分,TCP位于传输层,提供可靠的字节流服务。
所谓的字节流服务(Byte Stream Service)是指,为了方便传输,将大
块数据分割成以报文段(segment) 为单位的数据包进行管理。而可
靠的传输服务是指,能够把数据准确可靠地传给对方。–言以蔽之,
TCP协议为了更容易传送大数据才把数据分割,而且TCP协议能够
确认数据最终是否送达到对方。
确保数据能到达目标
为了准确无误地将数据送达目标处,TCP协议采用了三次握手
( three-way handshaking)策略。用TCP协议把数据包送出去后,TCP
不会对传送后的情况置之不理,它-定会向对方确认是否成功送达。
握手过程中使用了TCP的标志(flag) _ SYN (synchronize) 和
ACK ( acknowledgement)。
发送端首先发送一一个带SYN标志的数据包给对方。接收端收到后,
回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后,发
送端再回传-一个带ACK标志的数据包,代表“握手”结束。
若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发
送相同的数据包。

四、DNS服务

DNS (Domain Name System)服务是和HTTP协议- -样位于应用层的
协议。它提供域名到IP地址之间的解析服务。
图源《图解HTTP彩色》(图源《图解HTTP彩色》)

五、告知服务器意图的HTTP方法

1)GET:获取资源

GET方法用来请求访问已被URI识别的资源。指定的资源经服务器
端解析后返回响应内容。也就是说,如果请求的资源是文本,那就保
持原样返回;如果是像CGI (Common Gateway Interface,通用网关接
口)那样的程序,则返回经过执行后的输出结果。

2)POST:传输实体主体

POST方法用来传输实体的主体。
虽然用GET方法也可以传输实体的主体,但–般不用GET方法进行
传输,而是用POST方法。虽说POST的功能与GET很相似,但
POST的主要目的并不是获取响应的主体内容。

3)PUT:传输文件

pUt方法用来传输文件。就像FTP协议的文件.上传一-样,要求在请
求报文的主体中包含文件内容,然后保存到请求URI指定的位置。
但是,鉴于HTTP/1.1的PUT方法自身不带验证机制,任何人都可以
上传文件,存在安全性问题,因此–般的Web网站不使用该方法。若
配合Web应用程序的验证机制,或架构设计采用
REST ( REpresentational State Transfer,表征状态转移)标准的同类
Web网站,就可能会开放使用pUT方法。

4)HEAD:获得报文首部

HEAD方法和GET方法- -样,只是不返回报文主体部分。用于确认
URI的有效性及资源更新的日期时间等。

5)DELETE:删除文件

DELETE方法用来删除文件,是与PUT相反的方法。DELETE方法按
请求URI删除指定的资源。
但是,HTTP/1.1 的DELETE方法本身和PUT方法一样不带验证机
制,所以一般的Web网站也不使用DELETE方法。当配合Web应用
程序的验证机制,或遵守REST标准时还是有可能会开放使用的。

6)OPTIONS:询问支持的方法

OPTIONS方法用来查询针对请求URI指定的资源支持的方法。

7)TRACE:追踪路径

TRACE方法是让Web服务器端将之前的请求通信环回给客户端的方
法。
发送请求时,在Max-Forwards首部字段中填入数值,每经过一个服
务器端就将该数字减1,当数值刚好减到0时,就停止继续传输,最
后接收到请求的服务器端则返回状态码200OK的响应。
客户端通过TRACE方法可以查询发送出去的请求是怎样被加工修改
/篡改的。这是因为,请求想要连接到源目标服务器可能会通过代理
中转,TRACE方法就是用来确认连接过程中发生的- -系列操作。
但是,TRACE方法本来就不怎么常用,再加上它容易引发
XST (Cross- Site Tracing,跨站追踪)攻击,通常就更不会用到了。

8)CONNECT:要求用隧道协议连接代理

CONNECT方法要求在与代理服务器通信时建立隧道,实现用隧道协
议进行TCP通信。主要使用SSL (Secure Sockets Layer,安全套接
层)和Tls (Transport Layer Security,传输层安全)协议把通信内容
加密后经网络隧道传输。
在这里插入图片描述(图源《图解HTTP彩色》)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值