深入分析Java Web技术内幕 深入Web请求过程 学习笔记 1

1.互联网架构遵守原则

URL,统一资源定位符。互联网上的资源都是使用一个URL表示。
必须基于HTTP与服务端进行交互。
数据展示必须在浏览器中。

2.HTTP请求

根据地址栏中的URL域名DNS解析出IP地址。
根据地址和端口号与远程服务器建立Socket连接。
浏览器将该URL组装成一个get类型的HTTP请求头,通过outputStream.write发送到目标服务器
服务器通过inputStream.read返回数据。
断开连接
总之:发起一个HTTP请求的过程,就是建立一个Socket通信的过程。

3.HTTP Header

控制着成千上万的用户的数据传输。
控制着浏览器渲染行为和服务器的执行逻辑。

4.常见的HTTP请求头

请求头说明
Accept-Charset用于指定客户端接受的字符集
Accept-Encoding用于指定可接受的内容编码,如Accept-Encoding:gzip.deflate
Accept-Language用于指定一种自然语言,如Accept-Language:zh-cn
Host用于指定被请求资源的Internet主机和端口号,如Host:www.tabao.com
User-Agent客户端将它的操作系统、浏览器和其他属性告诉服务端
Connection当前连接是否保持,如Connection:Keep-Alive

5.常见的HTTP响应头

响应头说明
Server使用的服务器名称,如:Server:Apache/1.3.6(Unix)
Content-Type用于指明发送给接收者的实体正文的媒体类型,如Content-Type:text/html;charset=utf8
Content-Encoding与请求报头Accept-Encoding对应,告诉浏览器服务器端采用的是什么压缩编码
Content-Language与Accept-Language对应,描述了资源所用的自然语言
Content-Length指明实体正文的长度,用以字节形式存储的十进制数字表示
Keep-Alive保持连接的时间,如Keep-Alive:timeout=5,max=20

6.常见的HTTP状态码

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

7.域名解析过程

第一步:去浏览器中查看是否有缓存
第二步:查看操作系统是否有缓存

域名解析过程

linux和windows可以通过nslookup查看域名的解析过程
linux系统中还可以通过dig命令查看域名解析过程

nslookup查看域名解析过程
dig查看域名解析过程
8.域名缓存清除

windows:ipconfig  /flushdns
linux: /etc/init.d/nscd restart

9.Java域名缓存

JVM通过InetAddress进行域名解析缓存
正确解析结果缓存和失败解析结果缓存
	缓存时间:$JAVA_HOME/jre/lib/security/java.security
			networkaddress.cache.ttl=-1
			networkaddress.cache.negative.ttl=10

10.CDN工作机制

Content Delivery NetWork 内容分布网络。
在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近获取到指定内容。
目前CDN以静态内容为主,如CSS、JS、图片和静态页面等数据。

11.负载均衡

架构:
	链路负载均衡
		将域名解析成不同的IP,用户通过IP访问不同的服务器
	集群负载均衡
		硬件负载均衡
			使用一台专门硬件设备来转发请求
		软件负载均衡
	操作系统负载均衡
		使用操作系统级别的软中断和硬中断来达到负载均衡
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值