【图解HTTP】总结(一)

来源:互联网 发布:java断点续传下载 编辑:程序博客网 时间:2024/04/29 03:51

一、前言

书目:《图解HTTP》

(著)【日】上野 宣 

(译) 于均良


二、正文

第一章 了解Web及网络基础






Web使用一种名为HTTP(HyperText Transfer Protocol,超文本转移协议)作为规范,完成从【客户端】到【服务端】等一系列运作流程。协议是指规则的约定。即,【Web是建立在HTTP协议上通信。】
 


HTTP的诞生及发展


3项WWW构建技术,把SGML(标准通用标记语言)作为页面的文本标记语言HTML;
                                作为文档传递协议的HTTP;
                                指定文档所在地的URL(统一资源定位符)







 TCP/IP协议族


 


TCP/IP的分层管理


应用层:决定了向用户提供应用服务时通信的活动。【FTP文本转移协议】、【DNS域名系统】、【HTTP】


传输层:对上层应用层,提供处于网络连接中的两台计算机之间的数据传输。【TCP传输控制协议】、【UDP用户数据报协议】


网络层:又名【网络互连层】。用来处理网络上流动的数据包。该层规定了通过怎样的路径(传输路径)到达对方计算机,并把数据包传送给对方。数据包是网络传输的最小数据单位。


链路层:又名【数据链路层、网络接口层】。用来处理连接网络的硬件部分。
                包括【控制操作 系统】【硬件设备驱动】【NIC网络适配器,网卡】【光纤】






 




与HTTP密切关联的协议:【IP】【TCP】【DNS】


负责传输的IP协议:{
                        IP网际协议,【网络层】
                        与【IP地址】有区别
                         IP协议作用是把各种数据包传送给对方。保证确实传送成功,需要【IP地址】【MAC地址】
                        【IP地址】指明了节点被分配到的地址;【MAC地址】指网卡所属的固定地址。 
                        
                        【ARP协议】是一种用以解析地址的协议。根据通信方的【IP地址】反查【MAC地址】
                        【路由选择】:没有人能够全面掌握互联网中的传输状况 
}
 
确保可靠的TCP协议:{
                        提供可靠的字节流服务。【传输层】
                  
                        
                          TCP采用了三次握手策略:{
                                                    TCP的标志:SYN(Synchronize)和ACK(acknowledgement)
                                                
                            }



负责域名解析的DNS服务:{
                    DNS服务是提供【域名】到【IP地址】之间的解析服务。 【应用层】
                    
                    
}
 


HTTP通信过程:{
        



 URI和URL:{
            


            
                URI格式:{
                        
                        
                        
                        
                        
                }
}


并不是所有的应用程序都符合RFC:
{
        RFC(Request for Comments,征求修正意见书)
            
}








第二章 简单的HTTP协议










 


请求报文的结构:{


                【方法】【URI】【协议版本】
                【请求首部字段                                                   】
                【内容实体                                                          】


                
        







响应报文的构成:{
                
                【协议版本】【状态码】【状态码的原因短语】
                【响应首部字段                                                                       】
                【主体                                                                                     】


                











HTTP是不保存状态的协议:{
                    
                    HTTP是一种不保存状态,即【无状态(stateless)】协议。
                    这是为了更快地处理大量事务,确保协议的可伸缩性,而特意把HTTP协议设计成如此简单的。
                    
                
                    为了实现【期望的保存状态】功能,引入了Cookis技术。
                     有了Cookie  再用HTTP协议通信,就可以管理状态了。



 请求URI定位资源:{


                指定请求URI的方式:{
                            
                }


}




HTTP的八大方法{
                GET:获取资源:{
                               用来请求访问已被URI识别的资源。【文本】或【CGI(通用网关接口)】
                               
                            
                            例子:{
                                    
                        }
                }
            
                 POST:传输实体主体:{
                                用来传输实体的主体。
                                主要目的并不是获取响应的主体内容。
                                 
                                


                                例子:{
                                    
                        }
                 }


                PUT:传输文件:{
                                用来传输文件。
                               像FTP协议的文件上传一样,要求在请求报文的主体中包含文件内容,然后保存到请求URI指定的位置。


                                PUT自身不带验证机制,任何人都可以上传文件,存在安全性问题。
                                一般的Web网站不使用此方法。
                                若使用【配合Web应用程序的验证机制】或【采用REST架构设计的Web网站】,
                                  就可使用此方法。
                                
                                
                }




                HEAD:获得报文首部:{
                                   与GET方法一样,只是不返回报文主体部分。
                                   用于确认URI的有效性 及相关信息。
                                    
                                    
                }
    


                 DELETE:删除文件:{
                                    用来删除文件,与PUT方法相反。
                                    DELETE 自身不带验证机制,任何人都可以上传文件,存在安全性问题。
                                一般的Web网站不使用此方法。
                                若使用【配合Web应用程序的验证机制】或【采用REST架构设计的Web网站】,
                                  就可使用此方法。


                                


                                
                 }


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


                TRACE:追踪路径:{
                                 
                                让Web服务器端将之前的请求通信环 回给客户端。
                                
                                
                }




                CONNECT:要求用【隧道协议】连接代理:{
                                        
                                   要求在与代理服务器通信时建立隧道,实现用隧道协议进行TCP通信。
                                    主要使用【SSL安全套接层】和【TLS传输层安全】把通信内容加密后经网络隧道传输。
                                    
                                  格式:{
                                                        
                                   }


                                   
                }





【HTTP/1.0】和【HTTP/1.1】支持的方法:{


                    





持久连接 节省通信量:{


                HTTP初始版本中,每进行一次HTTP通信就要断开一次TCP连接:{
                                
                }
                
               初始版本中,HTML文档的传输方式:{
                                        
                    }


                   持久连接:{
                            HTTP keep-alive 特点:只要任意一端没有明确提出断开连接,则保持TCP连接状态。
                            
                            其好处在于减少了TCP连接的重复建立和断开所造成的额外开销,减轻了服务端的负载。
                             【在HTTP/1.1中,所有的连接默认都是持久连接】
                    }






                    管线化:{
                                   持久连接 使得多数请求以【管线化pipelining】方式发生成为可能。
                                
                    }







使用Cookie的状态管理:{


                    【如果让服务器管理全部客户端状态 则会成为负担】
            
                        


                Cookie技术通过在请求和响应报文中写入Cookie信息来控制客户端的状态:{
                                            


                                    报文:{
                                             
                                              
                                    }
                 }
                
}


(完)

0 0
原创粉丝点击