读后感(一) web运作原理探析

tomcat与java web开发技术详解之web运作原理探析

成为一名web开发工程师,首先要明白web运作原理,原理可以带我们更好的去解决底层问题,怎么去理解现在流行的开源框架,甚至如何去自己写一个框架。

1 什么是web?

web是网络上使用最广泛的分布式框架。它采用了客户端/服务器的通信模式,客户端可以是浏览器,通过浏览器它就可以连接服务器,访问许多服务器浏览各种各样的网站,这也是为什么说web是一种分布式的运用框架了。

2 URL

我们访问一个网站的时候会在浏览器显示一个网站地址,比如:http://www.claire.com/java/user/index.html;那么我们该如何理解这个URL呢?

它是由    应用层协议(如http、ftp等)+域名或者主机ip+资源所在路径/文件名      组成的。再看看刚刚的url是不是这么回事呢?

3 HTTP

HTTP,超级文本传输协议。它严格规范了http请求和http响应的数据格式,只要http服务器和客户端之间遵守这种协议,双方就可以很顺利的交流,所以web客户端不一定是浏览器,web服务器也可以运用很多种高级语言去编写。

客户端和服务器通讯过程需要经历四个步骤:

  • 客户端和服务器建立TCP连接
  • 客户端发送http请求给服务器
  • 服务器响应http请求并发送给客户端
  • 关闭TCP连接

3.1 HTTP请求格式

根据http请求协议,它分为三个部分:请求行,请求头和请求正文。

请求行:由请求方法(如get,post,put,delete等),url以及http版本组成。

请求头:请求头包含非常多的消息,例如声明浏览器的类型,请求正文的长度、类型等等。

请求正文:http规定请求正文和请求头之间有两个空行。空行非常重要,这代表着请求头结束,请求正文的开始。请求正文可以是post表单提交的信息,也可以是更多的内容。

3.2 HTTP响应格式

根据http响应协议,它分为三个部分:响应行,响应头和响应正文。

响应行:由http协议的版本,状态码和描述组成

响应头:响应头也可以包含许多信息,例如服务器信息,响应正文的类型和长度等。

响应正文:响应正文是返回给客户端的信息,可以是html的文档,也可以是其它类型的文件,如rar,doc等,这些文件在ie浏览器获得解析的时候会提示下载。

3.3 MIME

MIME类型是正文部分的类型,由http规范的正文部分格式,只有遵循这个类型才可以保证双方看得懂发送信息。

文件扩展名 MIME类型
未知数据类型 content/unknown
.bin  .exe   .o  .a  .z application/octet-stream
.pdf application/pdf
.zip application/zip
.tar application/x-tar
.gif application/gif
.jpg  .jpeg image/jpeg
.html  .htm text/html
.text  .c  .h   .txt  .java text/plain
.xml application/xml

4 SOAP

SOAP(Simple Object Access Protocol  简单对象访问协议),它是web服务器采用的一种通信协议,它规定客户端和服务器之间要使用xml语言进行通信。

  • 当html发送请求的时候,客户端协议连接器首先把请求包装成一个xml格式的SOAP请求,随后它把SOAP包装成了http请求的正文部分,最后客户端协议连接器发送http请求给web服务器。
  • web服务器获得http请求以后,服务端协议解析器把http请求正文部分取出,获得了SOAP请求,SOAP拥有最原始的正文数据,web服务器解析它并且响应。
  • web服务器把原始响应封装成SOAP响应结果,服务端协议解析器把它包装到http响应正文里面,最后服务端协议解析器把http响应发送给客户端。
  • 客户端协议连接器获取了http响应以后,取出http响应正文部分,即SOAP响应结果,取出最原始的响应数据并且发送给客户端。
时间: 2024-12-10 05:45:41

读后感(一) web运作原理探析的相关文章

Web运作原理探析

Web运作原理探析 1.1 web的 概念 Web是一种分布式的应用架构,旨在共享分布在网络上的各个Web服务器中的所有互相链接的信息. 1.2 HTML是指超文本标记语言. 1.3 URL简介 URL是Uniform Resource Locator的缩写,表示统一资源定位符,它是专门为了标识网络上的资源位置而设计的一种编址方式. 1.4 HTTP协议简介 HTTP 协议(Hypertext Transfer Portocol,超级文本传输协议). 当用户在浏览器中输入URL地址"http:/

mod_php模式原理探析

1.PHP与Apache工作模式 在传统的LAMP架构中,PHP与Apache交互时,至少有两种方式『运行PHP』: 使用CGI:Apache发送请求至php-cgi进程,php-cgi进程调用PHP解释器,然后由PHP解释器进程解释php脚本代码. 使用mod_php作为Apache的一个模块:PHP解释器作为Apache的一个内置模块,即不存在外部的PHP进程,而是由Apache(中的mod_php模块)进程解释执行PHP脚本 - 这意味着PHP与Apache通信更方便快捷. 其中,『运行P

深入探析 Rational AppScan Standard Edition 多步骤操作

序言 IBM Rational AppScan Standard(下文简称 AppScan)作为面向 Web 应用安全黑盒检测的自动化工具,得到业界的广泛认可和应用.很多人使用 AppScan 时都采用其强大的手工探索加自动探测的方式,然而这种方式并不适用于所有场景.使用 AppScan 进行安全扫描时,我们必须保证 AppScan 探索出来的 URL 的有效性(尤其是用户想导出这些探索结果以供复用的情况下),有效性即指该 URL 对应的 HTTP 请求能被服务器端接受并按照期望的方式进行处理.

【转】代码签名探析

转至:objc中国 代码签名探析 dopcn  15 Oct 2014 分享文章 "用户会感激代码签名带来的好处" – Apple Developer Library: Code Signing Guide 在 iOS 或 OS X 平台上进行应用开发时,你所需要使用的 API 大多设计得简洁明了.你可以轻易地实现酷炫的动画效果,便捷地进行应用发布前测试,或是用 Core Data 将数据安全的存储在本地.但是总有一天,你会碰上代码签名 (code signing) 和配置文件 (pr

Spring Boot 运作原理

Spring Boot 运作原理 1.Spring Boot 简介 SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过这种方式,Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者.SpringBoot并不是要成为Spring平台里面众多"Foundation"层项目的替代者.S

Java Annotation 及几个常用开源项目注解原理简析

PDF 版: Java Annotation.pdf, PPT 版:Java Annotation.pptx, Keynote 版:Java Annotation.key 一.Annotation 示例 Override Annotation Java 1 2 3 @Override public void onCreate(Bundle savedInstanceState); Retrofit Annotation Java 1 2 3 @GET("/users/{username}&quo

合并财务报表分步合并与一次合并的差异探析

多层控股关系下,集团编制合并报表的顺序采用一次合并法还是分步合并法,两者的结果是否相同,其使用有否受到限制,实务中存在疑惑.本文着重分析在抵销内部交易未实现损益.同一控制下企业合并.购买子公司少数股权等事项中,不同合并顺序的应用及其对于合并报表权益结构的影响,探讨在实务中如何消除因合并顺序不同而引发的差异,以提高合并报表的编制质量. 一.多层控股关系下有关合并报表顺序的两种方法 当存在多层控股关系时,编制合并报表的合并顺序一般有分步合并和一次合并两种方法. (一)分步合并法 分步合并法,指企业存

Web工作原理

[转载]WEB工作原理简述 作为一名想学习网站开发, 或者更专业一点说叫"B/S体系结构系统"开发的同学来说, 可能首先想到的是学习各种前端技术, 例如: HTML, CSS, Javascript--, 以及各种动态网站开发技术, 诸如: ASP, ASP.NET, JSP, PHP-- . 但是, 在你开始之前, 请稍安勿躁, 了解一下网站是如何工作的往往是一件"磨刀不误砍柴工"的事情. 曾经接触过一些公司里刚入职的程序员, 往往会犯一些比较低级的错误而百思不得

构造方法探析

构造方法探析 编译环境 Windows 10 Pro jdk1.8.0_91 如果没有特殊说明,下面程序都有javac.java的编译运行过程. 构造方法的特点 方法名与类名相同. 不用定义返回值类型. 没有具体的返回值. 此次整理是按照知识点具体为例子的方式. 当没有写构造方法时,Java虚拟机默认会创建一个空构造 ClassDemo1.java class ClassDemo1{ public static void main(String[] args){ //new 关键字后面跟的必须是