Java Web Study-Web Request

Java Web 学习的相关内容

如何发起一个HTTP请求?

发起一个HTTP请求的过程实际上就是建立一个Socket通信的过程。

浏览器在建立Socket连接之前,必须根据地址栏里面输入的URL的域名DNS服务器,解析出对应的IP地址,例如aircjm.me这个域名通过DnsPod的DNS服务器就会解析到对应的github或者是coding的服务器ip地址,的再根据这个IP地址和默认的端口号80与远程服务器建立Socket连接,然后浏览器通过这个URL组装成一个get类型的HTTP请求,通过outputStream.write发送到服务器,服务器等待inputStream.read返回数据,最后断开这个链接。

状态码 说明
200 访问成功
302 临时跳转,跳转的地址通过Location指定
400 客户端请求语法错误,不能被服务器识别
403 服务器收到请求,但是拒绝提供服务
404 请求的资源不存在
500 服务器发生不可预期的错误

缓存机制的几个属性:

Cache-Control/Pargma:no-cache :所有内容不会被缓存,在请求头和响应头中设置。

Expires: Sat, 25 Feb 2012 10:22:11 GMT 后面跟着一个日期和时间,超过这个时间缓存会失效。

Last-Modiried/Etag 表示一个服务器上资源最后修改时间,通过这个最后修改时间可以判断当前请求的资源是否是最新的。

域名的几种解析方式:

类型 说明
A记录 Address,用来指定域名对应的IP地址
MX记录 Mail Exchange,解析某个域名下的邮件服务器到自己的Mail Server
CNAME记录 Canonical Name(别名解析)为一个域名设置多个别名
NS记录 为某个域名指定DNS解析服务器
TXT记录 为某个主机名或者域名设置说明

CND工作机制:

通过镜像+缓存+整体负载均衡使得Content Delivery Network(内容分布网络)可以让用户更快的获得网络资源,提供用户访问网络的响应速度。

负载均衡:

就是对工作任务进行平衡、分摊到多个操作单元上执行,共同完成任务,对应用户来说,是一个服务器在处理任务,但是实际上是很多服务器组成一个集进行进行数据的处理。避免软件或者硬件的失效,导致任务或者请求的堵塞,和访问速度的一致性。

负载均衡的分类:

分类 说明
硬件负载均衡 性能好,价钱贵,不能动态扩容
软件负载均衡 成本低,多次代理,增加网络延迟
链路负载均衡
操作系统负载均衡

CDN动态加速:

通过动态的链路探测在CDN的DNS解析寻找回源最好的一条线路,将请求调度到选定的这条路径进行回源,从而加快网络访问速度。