热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

浏览器与服务器在网站访问过程中的数据交互分析

本文分析了浏览器与服务器在网站访问过程中基于HTTP协议的数据交互机制。HTTP协议具有轻量级和高效通信的特点,主要通过GET、HEAD和POST方法进行数据传输。其“请求-响应”模式确保了数据交互的有序性和可靠性,同时支持多种数据格式和内容类型,为现代Web应用提供了坚实的基础。

 

一、HTTP协议特点:

HTTP服务器的程序规模小,通信速度快;只需传送GET/HEAD/POST方法和路劲。

HTTP的“请求-响应”工作方式会使页面不断刷新,AJAX技术可只刷新和处理网页的一部分局域。

Connection:浏览器与服务器之间的数据传输通道。一般在请求结束时关闭,不会保持连接。

Request:浏览器向服务器请求

Response:服务器响应浏览器请求

 

 需注意的一点是:每个资源都是一个单独的请求:浏览器先请求和接收主页面数据,再请求和接收js/css/jpg/ashx等资源!!

 

三、服务器返回的响应信息:

 

小重点:

①每个资源都是一个单独的请求:浏览器先请求和接收主页面信息,再请求和接收js/css/jpg/ashx等资源。

②js/css/jpg/ashx等资源的 请求信息中 包含一条Referer信息:指明资源是来自哪个页面中的请求:

例如_ Referer: http://localhost:3514/被攻击网站/验证码测试.aspx

③当在浏览器地址栏上输入时,是以GET方式请求。

当在页面的文本框输入信息并点提交时,浏览器会以POST方式发送信息,除了上述的类似信息外,在尾段有储存提交信息的ViewState隐藏字段的加密数据地址,其内标明了提交的元素及值。

④每个资源的请求会重复发送一些相同的信息,因为HTTP是无状态的,不会记住上次请求信息。

 

四、常用HTTP响应码:服务器处理请求的结果。

200 OK

301 Moved Permanently 永久转移

302 Found 临时转移

307 Temporary Redirect临时重定向

400 Bad Request 错误请求

401 Unauthorized 未授权

403 Forbidden 禁止

404 Not Found 页面未找到

500 Intermal Server Error 内部服务器错误

503 Service Unavailable 网站程序占资源过多(访问人数过多),或发生错误过多

 

五、断点续传-原理

当第一次请求 服务器的响应传输中断后,浏览器会再发出一个续传请求,并在头信息中添加一个Range头部指明续传的开始字节点:如 Range : bytes=5275648- 

服务器就会以此字节点开始续传:

Content-Range: bytes 5275648-15143085/15143086  (续传总字节为15143085的数据的15143085/15143086这一段数据)

Content-Length: 9867438 

转:https://www.cnblogs.com/slowsoul/archive/2012/11/18/httpprotocol.html



推荐阅读
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 深入理解OAuth认证机制
    本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文介绍如何在 Android 中通过代码模拟用户的点击和滑动操作,包括参数说明、事件生成及处理逻辑。详细解析了视图(View)对象、坐标偏移量以及不同类型的滑动方式。 ... [详细]
  • 本文详细介绍如何使用arm-eabi-gdb调试Android平台上的C/C++程序。通过具体步骤和实用技巧,帮助开发者更高效地进行调试工作。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • c# – UWP:BrightnessOverride StartOverride逻辑 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
author-avatar
咬__唇
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有