一、使用HTTP协议访问Web
1、通过发送请求获取服务器资源的Web浏览器等,都可成为客户端。
二、网络基础TCP/IP
1、TCP/IP的分层管理
(1)应用层:决定了向用户提供应用服务时通信的活动。
①FTP协议(文件传输协议)
②DNS协议(域名系统)
③HTTP协议
(2)传输层:提供处于网络连接中的两台计算机之间的数据传输。
①TCP协议(传输控制协议)
②UDP(用户数据报协议)
(3)网络层(网络互连层):用来出来在网络上流动的数据包。
(4)链路层(数据链路层、网络接口层):用来处理连接网络的硬件部分。
2、利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信。发送端从应用层往下走,接收端则从链路层往上走。
三、与HTTP关系密切的协议:IP、TCP和DNS
1、IP协议:负责传输
(1)作用:把各种数据包传送给对方。
(2)IP地址:指明了节点被分配到的地址
(3)MAC地址:指网卡所属的固定地址。
(4)IP地址可以和MAC地址进行配对。IP地址可变换,但MAC地址基本不会更改。
2、IP间的通信依赖MAC地址,这里会用到ARP协议。ARP是一种用以解析地址的协议,根据通信方的IP地址就可以反查出对应的MAC地址。
3、TCP协议:确保可靠性
(1)作用:提供可靠的字节流服务。
(2)字节流服务:指为了方便传输,将大块数据分割成一报文段为单位的数据包进行管理。
(3)TCP协议能够确认数据最终是否送达到对方。
(4)TCP协议的三次握手策略:发送端首先发送一个带SYN标志的数据包给对方。接收端收到后,回传一个带有SYN/ACK标志的数据包以示传达确认信息。最后大宋丹再回传一个带ACK标志的数据包,代表“握手”结束。
(5)若在握手过程中某个阶段莫名中断,TCP协议会再次以相同的顺序发送相同的数据包。
4、DNS服务:负责域名解析
(1)作用:提供域名到IP地址之间的解析服务。
(2)DNS协议提供通过域名查找IP地址,或逆向从IP地址反查域名的服务。
5、总结图
四、HTTP协议详解
1、请求报文
(1)请求方法
(2)请求URI
(3)协议版本
(4)可选的请求首部字段
(5)内容实体
2、响应报文
(1)协议版本
(2)状态码
(3)用以解释状态码的原因短语
(4)可选的响应首部字段
(5)主体
3、HTTP协议本身并不保留之前一切的请求或响应报文的信息。
4、HTTP请求方法:
(1)GET:获取资源
用来访问已被URI识别的资源。指定的资源经服务器端解析后返回响应内容。
(2)POST:传输实体主体
(3)PUT:传输文件
(4)HEAD:获得报文首部
(5)DELETE:删除文件
(6)TRACE:追踪路径
(7)OPTIONS:询问支持的方法
(8)CONNECT:要求用隧道协议连接代理
(9)LINK:建立和资源之间的联系
(10)UNLINK:断开连接关系
5、持久连接节省通信量
(1)持久连接:旨在建立1次TCP连接后进行多次请求和响应的交互。
(2)管线化:不等待响应,直接发送下一个请求。
6、使用Cookie的状态管理
Cookie技术通过在请求和相应报文中写入Cookie信息来控制客户端的状态。
五、HTTP状态码
1、状态码的类别
类别 原因短语
1XX Information(信息性状态码) 接受的请求正在处理
2XX Success(成功状态码) 请求正常处理完毕
3XX Redirection(重定向状态码) 需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求
5XX Server Error(服务器错误状态码) 服务器处理请求错误
2、2XX状态码
(1) 200 OK
表示从客户端发来的请求在服务器端被正常处理了。
(2) 204 No Content
表示服务器接受的请求已成功处理,但在返回的响应报文中不包含实体的主体内容。
(3) 206 Partial Content
表示客户端进行了范围请求,而服务器成功执行了这部分GET请求。
3、3XX状态码
(1) 301 Moved Permanly
表示永久性重定向。
(2) 302 Found
表示临时性重定向。
(3) 303 See Other
表示由于请求对应的资源存在着另一个URI,应使用GET方法定向获取请求的资源。
(4) 304 Not Modified
表示资源已找到,但未符合请求条件。
(5) 307 Temporary Redirect
表示临时性重定向。
4、4XX状态码
(1) 400 Bad Request
表示报文中存在语法错误。
(2) 401 Unauthorized
表示发送的请求需要通过HTTP认证的认证信息。
(3) 403 Forbidden
表示对请求资源的访问被服务器拒绝了。
(4) 404 Not Found
表示无法找到请求的资源
5、5XX服务器错误
(1) 500 Internal Server Error
表示服务武器端在执行时发生了错误。
(2) 503 Service Unavailable
表示该服务器处于超负荷或者正在停机维护,现在无法处理请求。
六、确保Web安全的HTTPS
1、HTTP的缺点
(1)通信使用明文(不加密),内容可能会被窃听;
(2)不验证同心坊的身份,因此有可能遭遇伪装;
(3)无法证明报文的完整性,所以有可能已遭遇篡改。
2、加密处理防止被窃听
(1)通信的加密:通过和SSL(安全套接层)或TLS(安全传输层协议)组合使用,加密通信内容。
(2)内容的加密:把HTTP报文里所含的内容进行加密处理。
3、把添加了加密及认证机制的HTTP成为HTTPS。
(1)HTTP + 加密 + 认证 + 完整性保护 = HTTPS
(2)HTTPS是身披SSL外壳的HTTP。HTTPS并非是应用层的一种新协议,只是HTTP通信接口部分用SSL和TLS协议替代而已。
(3)HTTPS采用共享密钥和公开密钥加密两者并用的混合加密机制。