✎ TCP/IP协议. ✎ HTTP协议 ✎ JSP和Servlet

  • ✎ TCP/IP协议. ✎ HTTP协议 ✎ JSP和Servlet
    *
    • ?在浏览器中输入URL地址 ->> 显示主页都经历了什么??
    • ☞ 首先客户端输入URL➙DNS服务器解析域名得到IP地址➙建立TCP连接➙客户端HTTP请求➙服务器端HTTP响应(客户端页面渲染)➙断开
    • ☞ 使用的协议:TCP协议-与服务器建立连接、IP协议-网络层发送数据、OPSF协议-路由选择、ARP协议-IP地址转换为MAC地址、HTTP协议-访问网页
    • ?常规的网络分层有那些??
    • ☞ OSI 7层模型:物理层➢数据链路层➢网络层➢传输层➢会话层➢表示层➢应用层
    • ☞ TCP/IP 5层模型:物理层➢数据链路层➢网络层➢传输层➢应用层
    • ☞ TCP/IP 4层模型:网络接口层➢网络层➢传输层➢应用层
    • ?TCP和UDP区别??
    • ◆ UDP 在传送数据之前不需要先建立连接,主机在收到UDP报文后,不需要给出任何确认。(报文段)
    • ◆ TCP 提供面向连接的服务.在传送数据之前必须先建立连接,数据传送结束后要释放连接。(字节流)(可靠传输)
    • ?TCP是如何保证可靠传输??
    •  1-分割数据段 2-包编号   3-检验和   4-丢弃重复数据
      
    •  5-流量控制  6-阻塞控制  7-ARQ控制 8-超时重传
      
    • ?TCP建立连接,三次握手🤝?
    • ▸ 客户端发送 SYN=1,seq=x,给服务器端(默认监听前来请求的客户端),[客户端询问服务器端,能否建立连接]
    • ▸ 服务器端收到客户端发送来的请求后,返回客户端 SYN=1,ACK=1,seq=y,ack=x+1,[回复客户端,可以的,我准备的协议参数发你,你也将你的协议参数发我]
    • ▸ 客户端收到服务器端给的响应状态信息,然后客户端再次向服务器端发送 ACK=1,swq=x+1,ack=y+1。[回复服务器端,好,协议参数约定好发你]
    • 思考🤔?
    •  ▵ 为什么要三次握手?(目的:建立可靠通信)
      
    •  ▵ 为什么传SYN?(目的:建立可靠通信)
      
    •  ▵ 传来SYN,为啥传ACK?(目的:建立可靠通信)
      
    • ?TCP断开连接,四次挥手?
    • ▸ 客户端发送 FIN=1,seq=u 给服务器端,
    • ▸ 服务器端收到后,回复 ACK=1,seq=v,ack=u+1 并通知自己机器上的应用进程,准备断开连接,数据传输操作赶快处理
    • ▸ 服务器端再次发送 FIN=1,ACK=1,seq=w,ack=u+1 告知客户端数据传输断开状态及那条数据开始断开的信息记录
    • ▸ 客户端收到后,再发送ACK=1,seq=u+1,ack=w+1,告知服务器端好的已经确定。然后断开连接。
    • ?HTTP 如何保存的长连接的?
    • ▵ what? 长连接不是指的socket连接吗?怎么http也有长连接了(Socket是持久连接)。
    • ☞ 这里指的长连接:指的是通过三次握手建立起一次连接,
    • –可以在此连接内发送多次Request请求,http1.0协议是短连接 http1.1默认是长连接
    • – 响应头加入Connection:keep-alive (连接:保存-活着)
    • ?Request的结构组成??
    • ‣ 1、请求行:(⁃请求方法[8种] ⁃请求资源的URL ⁃协议、版本)
    • ‣ 2、请求报文:每个头域由一个域名、冒号(:)和域值三部分组成(⁃告诉web服务器浏览器接收的语言版本 ⁃请求web服务器的IP地址和端口号 ⁃Cookies等消息)
    • ‣ 3、空白行:(⁃分割报头和请求体的专用行)
    • ‣ 4、请求体: (Get请求方法请求体重不传送任何数据,Post请求时可以传数据)
    • 8种请求方法:1-Git 2-Post 3-Put 4-Delete 5-Head 6-Trace 7-Connect 8-Options
    • ?Response的结构组成??
    • ‣ 1、状态行(⁃HTTP协议版本 ⁃响应状态码 ⁃响应结果的描述信息)
    • ‣ 2、响应报头(⁃Web服务器版本信息 ⁃内容类型及字符编码方式 ⁃响应时间 ⁃Cookies等信息)
    • ‣ 3、空白行 (⁃分割报头和请求体的专用行)
    • ‣ 4、响应正文 (⁃从Web服务器端响应来的HTML代码)
    • ?怎么理解HTTP是一种无状态协议??
    • ▴ 无状态,指协议对事物处理没有记忆能力。
    • ▴ 缺少状态意味着如果后续处理需要前面的信息,则它必须重传.
    • ▴ 这样可能导致每次连接传送的数据量增大。
    • ?Session和Cookie总结:
    • ➢ Session是存储在服务器端,Cookie是存储在客户端的。
    • ➢ Session的安全性要比cookie高。
    • ➢ 服务器端创建的Cookie,浏览器默认将其保存在缓存中,当浏览器关闭之后Cookie消失。
    • ➢ 服务器端创建Cookie时候通过setMaxAge方法设置Coolie有效时间。
    • ➢ Cookie禁用的情况下,使用所有的访问路径URL后面,带有一个jsessionid的参数。
    • 浏览器1、首次访问 ➯ 2.生成对象(生成Cookie/Session对象) ➯ 3.web服务器保存session列表 ➯ 4.web服务器响应客户端Cookie内容 ➯ 5.客户端保存Cookie,再次访问的凭证达到长连接状态。
    • ?Servlet和Jsp有什么关系吗?
    • ▵ Servlet是一个特殊的Java程序,能够依赖Web服务器的支持向浏览器提供显示内容。
    • ▵ Jsp本质上是Servlet的一种简易形式,Jsp会被服务器处理成一个类似于Servlet的Java程序,可以简化页面内容的生成。
    • ▵ Jsp侧重于视图,Servlet更侧重于控制逻辑。
    • ✯Servlet本质是服务器端的小Java程序。
    • ✯这个小Java程序不能随意编写,必须实现Sun公司制定的 javax.servlet,Servlet接口。
    • ? Servlet的生命周期??
    • ▸ Servlet 的生命周期始于将它装入的内存时,并在终止或重新装入Servlet时结束。
    • ▸ 包括加载和实例化、初始化、处理请求以及服务结束。
    • ▸ 这个生存周期由 javax.servlet.Servlet接口的 init,service 和 destroy方法表达。
    • ?Servlet是线程安全性的吗?? (No,不是)
    • ▸ Servlet 是单例的,对于所有请求都使用一个实例。
    • ▸ 如果有全局变量被多线程使用的时候,就会出现线程安全问题。
    • ▸ 解决这个问题的三种方案:{singleThreadModel、synchronized、不使用全局变量}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值