`
hh.凝望
  • 浏览: 64051 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

web服务器的工作原理及http协议格式和流程

阅读更多

Web服务器工作原理:

一个Web服务器也被称为 HTTP 服务器,它通过 HTTP 协议与客户端通信。这个客户端通常指的是 Web 浏览器。一个基于 Java Web 服务器用到二个重要的类,java.net.Socket java.net.ServerSocket ,并通过 HTTP 消息通信。

The Hypertext Transfer Protocol(HTTP)(超文本传输协议)

HTTP 是一种让 Web 服务器与浏览器(客户端)通过 Internet 发送与接收数据的协议。它是一个请求、响应协议--客户端发出一个请求,服务器响应这个请求。HTTP 运用可靠的 TCP 连接,通常用的 TCP 80 端口。它的第一个版本是 HTTP/0.9 ,然后被 HTTP/1.0 取代。当前的版本是 HTTP/1.1 ,由RFC2616(.pdf) 定义。

HTTP 中,客户端总是通过建立一个连接与发送一个 HTTP 请求来发起一个事务。服务器不能主动去与客户端联系,也不能给客户端发出一个回叫连接。客户端与服务器端都可以提前中断一个连接。例如,当用一个浏览器下载一个文件时,你可以通过点击停止键来中断文件的下载,关闭与服务器的 HTTP 连接。

HTTP 请求

一个 HTTP 请求包含三个部分:

Method-URI-Protocol/Version方法-地址-版本

Request header请求头

Entity body请求实体

下面是一个 HTTP 请求实例:

POST /servlet/default.jsp HTTP/1.1

Accept: text/plain; text/html

Accept-Language: en-gb

Connection: Keep-Alive

Host: localhost

Referer: http://localhost/ch8/SendDetails.htm

User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)

Content-Length: 33

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip deflate

LastName=Franks&FirstName=Michael

The Method-URI-Protocol/Version 在这个请求的第一行:

POST /servlet/default.jsp HTTP/1.1

其中 POST 是请求的类型。每个客户端 HTTP 请求可以是 HTTP 规范中指定的许多请求类型中的一种。HTTP 1.1 支持七种类型的请求,它们是 GETPOSTHEADOPTIONSPUTDELETETRACE。其中 GET POST Internet 应用中经常用到的二种请求类型。

URI 完整地指定了 Internet 资源。一个 URI 通常被解析为相对服务器的根目录。这样,它应该总是以一个 '/' 前缀开始。一个 URL 实际上是 URI 的一种类型。

Version 指的是该 HTTP 请求所用到的 HTTP 协议版本。

请求头包含了客户端环境与请求实体的一些有用的信息。例如它包含浏览器设定的语言、实体的长度等等。每条请求头用回车换行符(CRLF)分开。

一个非常重要的空行分开了请求头与实体,它标志着实体内容的开始。一些 Internet 开发书籍认为这个 CRLF 空行是 HTTP 请求的第四个部分。

在上面的 HTTP 请求中,实体只是简单以下的一行:

LastName=Franks&FirstName=Michael

在一个典型的 HTTP 请求中,请求实体内容会长得多。

HTTP 响应

与请求相似,HTTP 响应也由三部分组成:

Protocol-Status code-Description协议状态 描述代码

Response headers响应头

Entity body响应实体

以下是一个 HTTP 响应的实例:

HTTP/1.1 200 OK

Server: Microsoft-IIS/4.0

Date: Mon 3 Jan 1998 13:13:33 GMT

Content-Type: text/html

Last-Modified: Mon 11 Jan 1998 13:23:42 GMT

Content-Length: 112

<html>

<head>

<title>HTTP Response Example</title></head><body>

Welcome to My Blog!

</body>

</html>

响应头的第一行类似请求头的第一行,告诉你所用的协议是 HTTP 1.1 ,请求成功(200=success),以及没有任何问题。

响应头类似请求头也包含了一些有用的信息。响应的实体响应本身的 HTML 内容。头与实体之间由回车换行的空行(CRLF)分开。

这儿有更加详细得介绍:http://lanshuibingdao.blog.163.com/blog/static/421463662009223114028466/

分享到:
评论

相关推荐

    Java Web 服务器原理

    Java Web服务器原理主要涉及到Web应用的部署、运行和管理,其中Tomcat是一个广泛使用的开源Java Servlet容器,它是Java EE(现在称为Jakarta EE)的一部分。本文将深入探讨Java Web服务器的工作原理,特别是Tomcat的...

    基于Java的Web服务器工作原理

    在深入探讨基于Java的Web服务器工作原理之前,我们需要理解Web服务器的基本概念和Java技术栈的关键组件。 首先,Web服务器是一种软件,其主要任务是接收来自客户端(如浏览器)的HTTP请求,处理这些请求,然后向...

    Web服务器 http协议

    总之,通过Visual Studio 2008和MFC实现Web服务器,需要理解HTTP协议的工作原理,熟悉TCP/IP网络编程,以及掌握C++和MFC库的使用。同时,测试、调试、安全性和性能优化都是项目成功的关键要素。这个项目为学习Web...

    Java Web服务器原理.pdf

    Java Web服务器原理主要涉及到互联网的核心技术,包括HTTP服务器的工作机制、HTTP协议的特性以及URL和域名的概念。HTTP(Hypertext Transfer Protocol)是互联网上应用最广泛的一种网络协议,它定义了客户端(通常是...

    HTTP协议原理+实践 Web开发工程师必学

    HTTP(Hypertext Transfer Protocol)超文本传输协议是互联网上应用最为广泛的一种网络协议,它是Web浏览器和服务器之间通信的基础。理解HTTP协议的原理对于Web开发工程师来说至关重要,因为这直接影响到网页的加载...

    计算机网络实验一 Windows环境下用java实现web服务器

    这个实践项目旨在深化学生对HTTP协议的理解,以及Web服务器的工作机制。HTTP(超文本传输协议)是互联网上应用最为广泛的一种网络协议,它规定了客户端与服务器之间数据交换的规则。 首先,我们需要了解HTTP协议的...

    web-server WEB服务器

    1. **Web服务器基础**:Web服务器如何通过HTTP协议与客户端通信,包括请求和响应的工作流程。 2. **HTTP协议**:学习HTTP请求方法(GET、POST等)、状态码(200、404、500等)以及HTTP头的使用。 3. **服务器架构**...

    一个基于HTTP的独立web服务器

    通过这个项目,开发者可以深入了解HTTP协议的结构和工作流程,包括请求头、请求方法、状态码等。这对于理解Web应用程序的架构和开发是至关重要的。 【标签】:“web服务器”、“HTTP”、“JAVA” 这些标签表明了...

    web服务器编程代码

    在进行Web服务器编程时,开发者需要熟悉HTTP协议,了解其工作流程,包括请求和响应的结构、状态码的含义以及各种HTTP方法的用途。同时,还需要掌握网络编程的基本概念,如套接字编程和多线程,因为Web服务器通常需要...

    HTTP协议简介及其工作原理.pdf

    HTTP 协议简介及其工作原理 HTTP 协议简介 超文本传输协议(HTTP)是万维网应用层的协议,由两个程序实现:一个是客户端程序(一般称为浏览器),另一个是服务器(常称 Web 服务器)。这两个通常运行在不同的主机...

    易语言简易WEB服务器

    易语言简易WEB服务器是一款基于易语言开发的简单网络服务器软件,主要目标是为初学者提供一个学习和理解HTTP协议、网络编程以及服务器构建基础的平台。这个源码可以帮助开发者了解如何处理HTTP请求,如何响应客户端...

    纯java写的web服务器

    Java是一种广泛使用的编程语言,尤其在开发Web应用程序...对于学习和理解Web服务器的工作原理,这样的项目提供了宝贵的实践机会。同时,这也是一种锻炼和提升Java编程技能,特别是网络编程和服务器开发技能的有效途径。

    WEB服务器的建立

    【实验原理】WEB服务器的工作流程包括三个主要步骤:1)客户端通过Web浏览器向服务器发送HTTP请求,请求指定的网页;2)服务器接收到请求后,在其配置的网站目录中查找对应的网页文件;3)服务器找到文件后,将内容...

    简单的web服务器

    2. **HTTP协议**:HTTP(超文本传输协议)是互联网上应用最广泛的一种网络协议,用于从Web服务器传输数据到客户端。项目中的Web服务器需要理解和处理HTTP请求,并生成相应的HTTP响应。 3. **Web服务器**:Web服务器...

    浅谈高职院校Java web课程中web服务器原理教学方法和技巧.zip

    三是定期组织编程实战,检验学生对Web服务器原理的理解和应用能力。 总的来说,教授高职院校Java Web课程中的Web服务器原理,不仅要注重理论知识的传授,更要强调实践操作和问题解决能力的培养。通过有效的教学方法...

    简易WEB服务器(C++)

    通过这个项目,开发者不仅可以学习到C++编程,还能深入理解网络通信的基本原理和HTTP协议的工作流程,为未来开发更复杂的Web服务或后端应用打下基础。对于初学者来说,这是一个很好的实践项目,有助于理论知识与实际...

    Java Web编程 web工作原理

    当用户通过浏览器访问应用时,请求被发送到Web服务器,服务器再转发给Web容器,容器根据请求的URL找到对应的Servlet,并执行服务方法。 Servlet生命周期包括初始化、服务、销毁三个阶段。初始化阶段,Servlet容器...

    Web服务器的配置与管理.pptx

    综上所述,Web服务器的配置与管理涉及多个方面,包括选择合适的服务器软件、安装和配置服务、理解工作流程、以及通过管理工具进行日常维护和故障排查。对于运维人员来说,掌握这些技能是确保网站正常运行和服务质量...

    MDM9x35 WEB工作流程

    MDM9x35工作流程的核心是通过Web服务器进行设备管理和配置。这一过程可能包括初始化设置、网络连接配置、参数调整等,旨在确保设备能够有效地接入和利用无线网络资源。由于其涉及的是机密信息,因此在实际操作中需要...

    Python实现简单的Web服务器.pdf

    综上所述,本文不仅介绍了如何使用Python实现一个简单的Web服务器,还详细阐述了Web服务器的工作原理和在当今互联网中的应用。通过这篇文章,读者可以了解到利用Python进行Web服务器开发的流程和相关知识点,并对...

Global site tag (gtag.js) - Google Analytics