Web的基本工作原理、HTTP协议和URL说明

Web工作原理

客户端和Web服务器通过HTTP协议进行通信。Web服务器有是也叫HTTP服务器或Web容器。HTTP协议采用的是请求/响应模式。即客户端发起HTTP请求,web服务器接收并解析处理HTTP请求,然后将HTTP响应发送给客户端。

Web服务器

Web服务器指的是一个软件程序,例如Apache Tomcat、Jboos等。它们的作用就是管理Web应用,当客户端发出一个HTTP请求,相应的Web服务器接收HTTP请求后,调用相应的web应用处理请求,然后Web服务器再将响应结果返回给客户端。
额外说明:服务器是一个硬件概念,指的是24小时不间断运行的主机。简单来说就是一台电脑,里面配置好了Web服务器和web应用。客户端就可以通过URL地址向该服务器发出HTTP请求,访问Web应用的资源文件了。

URL(Uniform Resource Location 统一资源定位器)

当客户端(浏览器)输入一个URL地址,就能接收到Web服务器发送过来的数据。这个过程就是在使用HTTP协议通信。

URL格式:protocol://[host.]domain[:port][/context][/resource][?query string]     其中只有协议和域名是必需的,其他都是可选的。 
        应用层协议://主机IP或域名:端口/资源所在路径/文件名?请求参数 

URL各参数的说明:

协议:采用何种方式进行通信。
IP和域名是一样的,域名映射一个IP地址。作用就是标识一台计算机地址,这里就用于确定服务器地址。
端口:找到计算机后,通过端口确定一个计算机上的程序。例如Tomcat的默认端口就是8080
[/context][/resource]:Web应用中指定资源的路径。
[?query string]:表单提交的数据作为请求参数,就是这里的查询字符串

以一个Tomcat配置的Web应用为例。浏览器输入URL地址:http://localhost:8080/MyWebProgram/index.jsp?admin=abc&info=123456     【URL地址中,?之后是参数,多个参数之间用&分开】

浏览器发出一个访问/MyWebProgram/index.jsp 资源的HTTP请求,8080端口的程序,即Web服务器(Tomcat)接收并解析HTTP请求后,将index.jsp作为响应主体发送给浏览器。这样,一次请求/响应的通信过程就结束了。当然,这里的index.jsp会先被编译成Servlet,然后转成HTML文档才发送过去。关于Servlet/JSP这里不详述。

HTTP协议

HTTP通信不受限于特定的系统平台和编程语言,因为HTTP协议严格规定了HTTP请求和HTTP响应的数据格式。所以HTTP客户端(浏览器)和Web服务器遵守HTTP协议,那么就可以看懂双方的数据,从而顺利地通信。

HTTP协议的请求格式和响应格式

HTTP请求格式由三部分组成:

请求方法、URI和HTTP协议版本
请求头(Request Header):包含许多客户端环境和请求正文的有用信息。
请求主体(正文)(Request Content):包含请求参数。它和请求头之间用空格隔开,用于表示请求头结束。

以一个Servlet为例,向该Servlet发起请求,获取HTTP请求信息:

GET /TestServlet/testRequestHeaders HTTP/1.1
-------Request Header Infomation--------
accept---application/x-ms-application, image/jpeg, application/xaml+xml, image/gif, image/pjpeg, application/x-ms-xbap, */*
accept-language---zh-CN
ua-cpu---AMD64
accept-encoding---gzip, deflate
user-agent---Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Win64; x64; Trident/4.0; .NET CLR 2.0.50727; SLCC2; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)
host---localhost:8089
connection---Keep-Alive

这个例子描述了HTTP请求包含那些信息。这里采用的GET请求方法。关于各类请求方法的区别,后面会说到。 本例的Servlet代码如下:

@WebServlet(urlPatterns= {"/testRequestHeaders"} , name="requestHeaderTest")
public class RequestFormat extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter pw = resp.getWriter();
resp.setContentType("text/html");
resp.setCharacterEncoding("UTF-8");
pw.write("<html><head></head><body>");
//HTTP请求首行部分
pw.write(req.getMethod() + req.getRequestURI() + req.getProtocol() + "<br>");
//HTTP请求头
pw.println("-------Request Header Infomation--------<br>");
Enumeration<String> headers = req.getHeaderNames(); //获取所有请求头的名称
while(headers.hasMoreElements()) {
String header = (String)headers.nextElement();
pw.write(header + "---" + req.getHeader(header) + "<br>");
}
pw.write("</body></html>");
}
}

HTTP请求方法

HTTP请求方法有七种,最常用的当属GET和POST方法,关于另外5种这里不介绍了,因为不常用。
GET方式:
POST方式:

HTTP响应格式,由三部分组成:

HTTP协议版本 、状态代码和描述
响应头(Response Header)
响应主体/内容(Response Content)

这里的响应主体是HTML文档。大部分情况下都是HTML文档作为响应,前面的Servlet例子中,生成的HTML文档就是响应主体,由Web服务器发送给客户端(浏览器)。但有时候响应主体不是HTML文档,例如是一个DOC文档,那么浏览器就可能会借助本机的WORD程序来打开。如果是一个rar压缩文档,那么就会下载该文档。所以根据不同的响应内容类型,浏览器会采用不同的方式。要设置响应内容类型,Servlet中调用:response.setContextType()。该方法很重要,熟记!

原文地址:https://www.cnblogs.com/fwnboke/p/9114381.html

时间: 2024-08-02 05:07:53

Web的基本工作原理、HTTP协议和URL说明的相关文章

简介web服务器的工作原理

一 什么是web服务器,应用服务器和web容器? 对于web服务器与应用服务器:"在过去它们是有区别的,但是这两个不同的分类慢慢地合并了,而如今在大多在情况下和使用中可以把它们看成一个整体." 但是当有人说到"web服务器"时,你通常要把它认为是以HTTP为核心.web UI为向导的应用. 当有人说到"应用服务器"时,你需要想到"高负载.企业级特性.事务和队列.多通道通信(HTTP和更多的协议)". 在Java方面,web容器

Web服务器的工作原理

Web服务器工作原理概述 很多时候我们都想知道,web容器或web服务器(比如Tomcat或者jboss)是怎样工作的?它们是怎样处理来自全世界的http请求的?它们在幕后做了什么动作?Java Servlet API(例如ServletContext,ServletRequest,ServletResponse和Session这些类)在其中扮演了什么角色?这些都是web应用开发者或者想成为web应用开发者的人必须要知道的重要问题或概念.在这篇文章里,我将会尽量给出以上某些问题的答案.请集中精神

WEB前端-搜索引擎工作原理与SEO优化

一.搜索引擎工作原理 搜索引擎的工作分为三个阶段,即爬行,索引和检索 1.爬行  搜索引擎具有网络爬虫或蜘蛛来执行爬网,每次抓取工具访问网页时,它都会复制该网页并将其网址添加到索引中. 在“蜘蛛”抓取网页内容,提炼关键词的这个过程中,就存在一个问题:“蜘蛛”能否看懂.如果网站内容是 flash 和 js,那么它是看不懂的.相应的,如果网站内容是它的语言,那么它便能看懂,它的语言即 SEO 2.索引  此阶段,爬网程序会创建搜索引擎的索引.索引就像一本巨大的书,其中包含爬虫找到的每个网页的副本.如

Web Service 的工作原理

Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册. XML:(Extensible Markup Language)扩展型可标记语言.面向短期的临时数据处理.面向万维网络,是Soap的基础. Soap:(Simple Object Acces

Web Service 的工作原理(转)

Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册. XML:(Extensible Markup Language)扩展型可标记语言.面向短期的临时数据处理.面向万维网络,是Soap的基础. Soap:(Simple Object Acces

Web Service的工作原理

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术.是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册. XML:(Extensible Markup Language)扩展型可标记语言.面向短期的临时数据处理.面向万维网络,是Soap的基础. Soap:(Simple Object Access Protocol)简单对象存

android开发笔记之网络编程—使用TCP协议和URL进行网络编程

手机本身是作为手机终端使用的,因此它的计算能力,存储能力都是有限的.它的主要优势是携带方便,可以随时打开,而且手机通常总是处于联网状态.因此网络支持对于手机应用非常重要. Android完全支持JDK本身的TCP,UDP网络通信API,也可以使用ServerSocket,Socket来建立基于TCP/IP协议的网络通信,也可以使用DatagramSocket,Datagrampacket来建立基于UDP协议的网络通信. Android也支持JDK提供的URL,URLConnection等网络通信

如何用过滤器过滤HTTP协议和非HTTP协议编码

在编写web时,最苦恼的事情就是乱码了. 一直没怎么考虑过JSP第一句话中 <%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%> 的ContentType和pageEncoding具体是用做什么的,害自己做了过滤器也老是出现问题. Google下: contentType ------------指定的是JSP页最终 Bro

解析Vue-router相关干货及工作原理

本文主要介绍了vue-router相关基础知识及单页面应用的工作原理,写的十分的全面细致,具有一定的参考价值,对此有需要的朋友可以参考学习下.如有不足之处,欢迎批评指正. 单页面工作原理是通过浏览器URL的#后面的hash变化就会引起页面变化的特性来把页面分成不同的小模块,然后通过修改hash来让页面展示我们想让看到的内容. 那么为什么hash的不同,为什么会影响页面的展示呢?浏览器在这里面做了什么内容.以前#后面的内容一般会做锚点,但是会定位到一个页面的某个位置,这个是怎么做到的呢,和我们现在