【JavaWeb】从输入URL到展示出页面的过程

文章详细阐述了从输入URL开始,经过DNS域名解析,检查hosts文件,查询缓存,到建立TCP的三次握手连接,发送HTTP请求,接收服务器响应,页面渲染的过程,最后描述了断开连接的四次挥手。整个流程涵盖了网络通信的基础知识,包括DNS、TCP/IP和HTTP协议的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

DNS域名解析

检查hosts文件

查询缓存

查询本地DNS服务器

​编辑查询根域名服务器等

三次握手建立连接

发送请求

响应请求

页面渲染

断开连接


这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在自己家中展示出来。最后和他互道再见。

下面将详细介绍其中的过程。


DNS域名解析

URL 是“统一资源定位符”(Uniform Resource Locator)的首字母缩写,中文译为“网址”,表示各种资源的互联网地址。

有关DNS协议可以参考这篇文章http://t.csdn.cn/qow4V

检查hosts文件

浏览器先检查本地的hosts文件中是否有域名和IP映射的关系,如果有就直接完成域名解析,不用进行后面的查IP的工作。

查询缓存

如果hosts文件中没有,就先查缓存中有没有IP。过程大致如下: 

查询本地DNS服务器

查询根域名服务器等

完整如下图:

以上过程拿到了域名的IP,此时就可以继续下一步。


三次握手建立连接

http://t.csdn.cn/uQcaG

上面这篇文章中的TCP的连接管理中介绍了三次握手。把文章中的客户端换成浏览器即可。


发送请求

浏览器把请求打包成HTTP请求发送给服务器。

响应请求

服务器把发送过来的请求处理之后,把结果打包成HTTP报文返回给浏览器。

这上面的HTTP报文遵守的HTTP协议将会在下一篇文章中详细介绍。


页面渲染

浏览器拿到服务器返回的报文后就开始处理加工了。

处理HTML标签,构造成DOM树。

根据CSS解析生成CSS规则树。

DOM树 + CSS规则树 = 渲染树

重排:根据渲染树计算每个结点的几何信息

重绘:将每个结点绘制到屏幕上

回流:若哪个结点发生了变化,则重新生成渲染树重复上述步骤


断开连接

如果没有其他的操作,此时浏览器就会和服务器通过四次挥手来断开连接。

上面文章中三次挥手的下面就是四次挥手。


有什么错误评论区指出。希望可以帮到你。

Java Web中,电子书店的前台图书添加及页面展示通常涉及到前端UI和后端服务器交互。以下是实现的基本步骤: 1. **页面设计**:前端可以使用HTML、CSS和JavaScript构建用户界面,包括图书添加表单,如书名、作者、出版社等字段。Bootstrap或自定义样式可以提升页面美观。 ```html <!-- 示例 --> <form id="bookAddForm"> <input type="text" name="title" placeholder="请输入书名..."> <input type="text" name="author" placeholder="请输入作者..."> <input type="text" name="publisher" placeholder="请输入出版社..."> <button type="submit">添加图书</button> </form> <div id="booksList"></div> ``` 2. **AJAX请求**:通过JavaScript,当用户提交表单时,发起一个异步AJAX请求到服务器,发送数据并接收响应。 ```javascript $(document).on('submit', '#bookAddForm', function(event) { event.preventDefault(); // 阻止默认提交行为 var formData = $(this).serialize(); // 获取表单数据 $.ajax({ url: '/api/books', method: 'POST', data: formData, success: function(response) { // 更新图书列表显示新添加的图书 updateBookList(response); }, error: function(error) { console.error('添加图书失败:', error); } }); }); ``` 3. **后端处理**:服务器端,比如使用Spring MVC或JSP-Servlet,创建一个处理POST请求的控制器方法,接收到数据后保存到数据库,并返回一个表示成功的状态码或包含新增图书信息的数据结构。 ```java // 示例 Spring Controller @PostMapping("/api/books") public ResponseEntity<?> addBook(@RequestBody Book book) { // 业务逻辑:保存到数据库 saveBookToDatabase(book); // 返回成功响应 return ResponseEntity.ok().build(); } ``` 4. **页面刷新或局部更新**:如果希望实时更新页面,可以在后台成功响应后更新`#booksList`区域的HTML内容,或者使用WebSocket实现实时通信。 5. **图书列表展示**:从数据库查询出所有图书,在服务器端渲染成JSON或XML,然后通过Ajax获取并在前端动态加载到列表中。 完成以上步骤后,用户就可以在网页上添加图书,并看到新添加的图书显示在已有的列表中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值