1.TCP与http关系
(1) IP协议属于网络层 ,TCP协议属于传输层,HTTP协议属于应用层
(2) http全文是超文本传输协议,是一种万维网常用的协议,它是TCP协议的一种典型上的应用。
(3)建立起一个TCP连接需要经过“三次握手”,TCP连接一旦建立,在通信双方中的任何一方主动关闭连接之前,TCP 连接都将被一直保持下去。HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。(感觉tcp像是打电话,http是发短信)
2.sevlet处理请求响应全过程
(1)启动web服务器,接收请求。
(2)客户端发送请求
(3)浏览器对请求进行封装,并发送到web服务器端
(4)web服务器对请求信息进行解封装,如果请求的是静态页面,则交由web服务器处理,如果请求的是动态页面,则交由web容器处理。
(5)web容器根据web.xml文件去找相应的servlet类,如果没找到servlet实例,直接返回一个而错误页面给客户端。如果找到servlet,则产生一个新的线程,容器产生request和response对象,request对象封装客户端的请求信息,response对象封装返回给客户端的响应信息,将这2个对象作为参数传递给servlet的service()方法.(在web服务器没有将请求信息交给容器之前,是没有resquest和response对象的,并且这2个对象只能在容器中存在)
(6)servlet对请求信息进行处理,并将响应信息封装到response对象中返回给web服务器,此时再由服务器将响应信息进行封装,发送给客户端,客户端浏览器得到信息之后对其进行解封装,然后显示在浏览器上。
(7)当servlet处理完请求之后,就会刷新response对象,将控制权交给web服务器。
TCP是传输层协议,保证两台电脑上的两个程序数据传输到位。(参见网络五层模型)
HTTP是传输层之上的应用层协议,是被TCP包裹的具体表示有特殊含义逻辑的一段内容。有HTTP头,body,具体看HTTP协议规范标准
Servlet是JavaWeb里的知识,是一种动态网页技术。
Servlet推荐书。《JavaWeb编程技术》 沈泽刚
网络方面基础,《计算机网络原理》 没有固定哪本,讲得东西都差不多
TCP/IP 需要一本书:《TCP/IP 详解 卷一》
HTTP 需要另一本书:《HTTP 权威指南》
Sockets 还需要一本书:《Unix 网络编程 卷一》
以上三本书不需要看完,各看半本就行。然后才谈得到“它们之间的逻辑关系”。