Web总结(一)

1、什么是Web?
Java Web,是用Java技术来解决相关web互联网领域的技术总和。
web包括:web服务器和web客户端两部分,主要是为了实现网络交互。

Web系统应用的是B/S,是一种浏览器服务器模型,主要应用的协议是HTTP协议和HTTPS协议。HTTPS协议相比于HTTP只是多了一层加密的过程。
(HTTP协议属于应用层协议)

2、Web系统的消息传递过程:(应用的是TCP的三次握手和四次挥手)
(1)tcp的三次握手:
1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端与服务器开始传送数据。

(2)为什么是三次握手?
防止已经失效的报文段再次回到本次连接当中
syn洪攻击
具体原因:
在这里插入图片描述

(3)tcp的四次挥手:
第一次挥手:
客户端发送一个FIN=M,用来关闭客户端到服务器端的数据传送,客户端进入FIN_WAIT_1状态。意思是说"我客户端没有数据要发给你了",但是如果你服务器端还有数据没有发送完成,则不必急着关闭连接,可以继续发送数据。
第二次挥手:
服务器端收到FIN后,先发送ack=M+1,告诉客户端,你的请求我收到了,但是我还没准备好,请继续你等我的消息。这个时候客户端就进入FIN_WAIT_2 状态,继续等待服务器端的FIN报文。
第三次挥手:
当服务器端确定数据已发送完成,则向客户端发送FIN=N报文,告诉客户端,好了,我这边数据发完了,准备好关闭连接了。服务器端进入LAST_ACK状态。
第四次挥手:
客户端收到FIN=N报文后,就知道可以关闭连接了,但是他还是不相信网络,怕服务器端不知道要关闭,所以发送ack=N+1后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。服务器端收到ACK后,就知道可以断开连接了。客户端等待了2MSL后依然没有收到回复,则证明服务器端已正常关闭,那好,我客户端也可以关闭连接了。最终完成了四次握手。

(4)为什么是四次挥手?
在这里插入图片描述

3、DNS协议工作过程
下面以域名为m.xyz.com的主机欲通过另一个主机的域名y.abc.com的IP地址为 例,简述DNS协议过程。
主机m.xyz.com先向其本地服务器dns.xyz.com进行递归查询。
本地域名服务器先查询高速缓存,如果不久前已经查询过域名y.abc.com的IP,那么本地域名服务器就不必向根域名服务器查询,而是直接把高速缓存中存放的上次查询的结果(即y.abc.com的IP地址)告诉用户。
本地域名服务器采用迭代查询。他先向一个根域名服务器查询。
根域名服务器告诉本地域名服务器,下一次应查询的顶级域名服务器dns.com的IP地址。
本地域名服务器向顶级域名服务器dns.com进行查询。
顶级域名服务器dns.com告诉本地域名服务器,下一次应查询的权限域名服务器dns.abc.com的IP地址。
本地域名服务器向权限域名服务器dns.abc.com进行查询。
权限域名服务器dns.abc.com告诉本地域名服务器,所查询的主机的ip地址。
本地域名服务器最后把查询的结果告诉主机m.xyz.com

4、http协议过程
(1)浏览器内输入一个网址,然后回车
(2)对网址 根据DNS 域名解析协议进行IP地址、port端口号分析
(3)建立连接 TCP的三次握手
(4)发送请求(客户端向服务器)
(5)服务器收到请求,并且做出处理,把网址页面的信息拿到
(6)服务器发送响应给浏览器,把网址的界面信息发送给浏览器
(7)浏览器解析接收到的响应
然后做出相应处理 根据界面信息展示界面
(8)断开连接 tcp的四次挥手过程

5、http1.1 http1.0 二者区别
(1)短链接 —》 长连接
短连接指的是:一次请求响应结束之后,就会断开连接
长连接:一次请求响应之后会维护这个连接一段时间
connection:keep-alive
keep-alive:time
tcp长连接:
保活计时器,netty keepalive
2个小时之后如果 c 和 s之间没有消息传送的话
就会发送探测报文(不携带任何数据)。如果连接还存在,s能够收到
就回复一个报文。 心跳包

http长连接:
      基于TCP长连接,它就是让tcp的链接维持长一些。不让服务器在作出回应之后立马发送FIN去断开连接

(2)content-length(解决了区分第一次第二次的状态)
客户端需要告诉服务哪一部分是第一发送的请求,哪一部分是第二次
(3)100 continue 状态码
客户端需要发送一段很长很长的请求,就需要在请求行的版本协议号之后加上100 continue,
告诉服务器,服务器就会在消息接收完之后再去判断是否需要关闭连接。
目的:节省资源 如果没有的话就会出现反复建立连接的过程

6、发送请求的时候发送的是怎样的请求?
比如:分析http协议的处理过程
以http请求报文为例,分为下面三类:
(1)请求行
请求方法:get:没有请求体 post:有请求体
(2)请求头部
包含的是我们这次请求的一些基本信息
(3)空行
/r/n
7、get和post的区别?
(1)get:没有请求体 post:有请求体
(2)get把能够确定它所请求的信息都放在了url里
而post 它可以把一部分信息放在body里
浏览器会对get请求url有限制 也就是对请求内容有限制
post
(3)get 编码形式单一,post支持多种编码形式
(4)数据缓存 和 浏览器的设置有关
。。。。。。(还有很多)

8、请求头部的含义?(http)
Accept:告诉服务器,客户端支持的数据类型。

Accept-Charset:告诉服务器,客户端采用的编码。

Accept-Encoding:告诉服务器,客户机支持的数据压缩格式。

Accept-Language:告诉服务器,客户机的语言环境。

Host:客户机通过这个头告诉服务器,想访问的主机名。

If-Modified-Since:客户机通过这个头告诉服务器,资源的缓存时间。

Referer:客户机通过这个头告诉服务器,它是从哪个资源来访问服务器的。(一般用于防盗链)

User-Agent:客户机通过这个头告诉服务器,客户机的软件环境。

Cookie:客户机通过这个头告诉服务器,可以向服务器带数据。

Connection:客户机通过这个头告诉服务器,请求完后是关闭还是保持链接。

Date:客户机通过这个头告诉服务器,客户机当前请求时间。

9、响应头部的含义?(http)
Location:这个头配合302状态码使用,告诉用户端找谁。
Server:服务器通过这个头,告诉浏览器服务器的类型
Content-Encoding:服务器通过这个头,告诉浏览器数据采用的压缩格式。
Content-Length:服务器通过这个头,告诉浏览器回送数据的长度。
Content-Language:服务器通过这个头,告诉服务器的语言环境。
Content-Type:服务器通过这个头,回送数据的类型
Last-Modified:服务器通过这个头,告诉浏览器当前资源的缓存时间。
Refresh:服务器通过这个头,告诉浏览器隔多长时间刷新一次。
Content-Disposition:服务器通过这个头,告诉浏览器以下载的方式打开数据。
Transfer-Encoding:服务器通过这个头,告诉浏览器数据的传送格式。
ETag:与缓存相关的头。
Expires:服务器通过这个头,告诉浏览器把回送的数据缓存多长时间。-1或0不缓存。
Cache-Control和Pragma:服务器通过这个头,也可以控制浏览器不缓存数据。
Connection:服务器通过这个头,响应完是保持链接还是关闭链接。
Date:告诉客户机,返回响应的时间。

10、web服务器
作用:和客户端建立连接 tcp socket 完成建立连接 sc
(1)接受请求 sc
(2)解析请求 读 文件操作 一行一行读出来
(3)处理请求 逻辑处理
(4)响应请求 文件操作 写到一个文件里 借助scoket发送

11、servlet 生命周期:
(1)如果是第一次请求会先去实例化servlet对象,会运行运行方法init(跟构造方法一样)
(2)响应客户端请求,调用service()----》判断到底是get post head put
选择doGet doPost
(3)调用destory()方法 服务期退出时回调用这个方法

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值