web服务以及http协议

在使用计算机的过程中,最容易让人想起的就是浏览网页的经历,只需要用户输入网址,搜索及可以获得想要的资源,那么这个过程计算机是如何完成的?

web服务是C/S架构:用户使用的浏览器成为客户端代理,用户访问的资源其实是存储在服务器端。client通过网址(经过dns解析)能够定位自己想要访问的资源位于互联网的哪台服务器,server如何知道客户端请求的是什么内容,那就是http协议

URI:统一资源标识符,用于在全球范围唯一的标识某资源

    URL:统一资源定位符,是URI的一个子集,用户唯一标识互联网上的某一资源

所以用户输入的网址就是一个URL,唯一的标识了自己想要访问的资源

web资源,也可以成为web对象,例如一个html文件,一张图片等等,但是我们访问的一个网页一般都是有若干个资源组成的。

   client要获取server上的资源,那么首先就必须要和server建立连接,http协议简单的理解就是client告诉server自己要访问什么资源,并没有承担建立连接的任务,所以client在发送http请求报文之前,必须要和server端建立tcp/ip连接,通过tcp协议中的port来决定自己的请求报文到达server端的tcp/ip协议栈的时候,内核应该将其交给哪个进程处理。

在http协议的报文格式中,首先应该注意的就是

http-method:

GET 从服务器向客户端发送命名资源

PUT 将来自客户端的数据存储到一个命名的服务器资源中去

DELETE 从服务器中删除命名资源

POST 将客户端数据发送到一个服务器网关应用程序

HEAD 仅发送命名资源响应中的 HTTP 首部

在server响应报文首部的状态码,大致分类是:

1xx:纯信息

2xx:成功类的信息

3xx:重定向类的信息

4xx:客户端错误类的信息

5xx:服务器端错误类的信息

那么一个web服务器应该完成哪些基本工作:

1.建立连接

2.接受请求

3.处理请求

4,访问客户端请求的资源

5,构建响应报文

6.向客户端发送响应报文

7.记录日志

在互联网上,一台web服务器可能面临若干个请求,那么web服务器处理请求的方式有哪些:

1.使用单进程,一个进程响应一个请求(在此种工作模式下,服务器只能处理一个请求,那么后续的请求就需要排队等待响应)

2,使用多进程,一个进程响应一个请求(首先有一个主导进程,该进程不负责响应用户请求,而是在把用户请求接进来之后,生成一个子进程去处理请求,那么服务器就达到了并发连接的目的,但是由于每一个进程都需要加载需要的配置信息且是相互独立的,所以相当消耗内存资源,但是每一个进程独立,那么进程间的影响也就很小,一个进程的崩溃不会影响到其他进程。在这种情况下,进程在向内核发起IO请求之后,由于内核可能要处理多个IO请求,所以进程需要以轮训的方式不断的查看自己提交的IO操作是否完成)

3.使用一个进程响应多个请求(一个进程响应多个请求,由于只有一个进程,那么对系统资源的消耗是比较小的,那么在向内核发起多个IO请求后,进程如何获悉哪个HTTP请求的IO请求已经准备完毕?此处使用的是事件触发的机制,哪个HTTP请求的IO准备好之后,内核会通过相当于能够标识HTTP请求的机制去通知进程,哪个请求已经准备完毕)

4.使用多个进程,一个进程处理多个请求(此种方式就是方式2和方式3的结合)

时间: 2024-10-31 20:41:23

web服务以及http协议的相关文章

Linux之Web服务(1)HTTP协议

Linux之Web服务(1)HTTP协议 前言 在说到Web服务配置之前,先要了解一下Httpd服务所在的Tcp/Ip分层中的http协议. http协议为应用层协议,主要是负责处理超文本传输.http是一个客户端和服务端请求和应答的标准(TCP).客户端是终端客户,服务器端是网站.用户通过Web浏览器.网络爬虫或者其它的工具,客户端发起一个服务器上指定端口(默认为80)的HTTP请求.通过HTTP或者HTTPS协议请求资源由统一资源提示符(Uniform Resourcce Identifie

WEB集群笔记(1)-Web服务和HTTP协议

01.Web服务和HTTP协议 01.01.Web服务的基础:DNS Web服务离不开基础网络和DNS服务. 用户访问网站基本流程,即DNS解析流程 1).浏览器输入网址www.baidu.com,查找本地DNS缓存及hosts文件信息,如果有直接获取IP地址: 2).若没有,发送解析请求给DNS服务器地址,如果LDNS服务器缓存有对应地址,则获取IP地址; 3).若没有,LDNS继续请求DNS根(.)服务器,一层层查找直到找到baidu.com域名对应的授权DNS服务器,该服务器返回IP解析记

第十三篇:WEB服务器之HTTP协议

本篇主要为为了实现WEB服务器,其中包含了HTTP协议的理解,以及TCP的三次握手.四次挥手等方面相关知识,同时还包含了关于web浏览器与服务器之间的通信过程. 一.web浏览器 通常在我们上网时会在浏览器的地址栏输入网址,①.浏览器首先要对URL进行解析,②.随后通过HTTP协议定义消息内容和步骤,即规定发送请求的格式:③.根据服务器的域名通过操作系统下的解析器(DNS客户端)向最近的DNS服务器发送请求获取目标服务器的IP地址并存储在指定的内存空间内,,通过操作系统下的协议栈以及socket

Web服务及http协议

HTTP:HypeText Transfer Protocol:超文本传输协议 URI:Uniform Resource Indentifier:统一资源标识符 状态代码: 1xx    纯信息 2xx    成功类的信息(200) 3xx    重定向类的信息(301,302,304) 4xx    客户端错误类的信息(404) 5xx    服务器端错误类的信息 web服务器的主要操作 1.建立连接-接受或拒绝客服端连接请求 2.接受请求-通过网络读取HTTP请求报文 3.处理请求-解析请求

Linux web服务与HTTP协议基础概念

今天我们来说一下Web服务器当中的apache,在早些时候基本算是Web服务器市场占有率最高的一款开源Web服务器产品,其功能众多.稳定且开源,使得apache非常流行.下面我们来讲一下Web相关的知识及httpd的部分应用 一.Web相关知识 1.URI与URL URI: Uniform Resource Indentifier,统一资源标示符.全局范围内,可以唯一引用某一个独立资源的命名方式被称为统一资源标示符:统一是指路径格式上的统一. URL:Uniform Resource Locat

12个强大的Web服务测试工具

在过去的几年中,web服务或API的普及和使用有所增加. web服务或API是程序或软件组件的集合,可以帮助应用程序进行交互或通过形成其他应用程序或服务器之间的连接执行一些进程/事务处理.基本上有两种类型的web服务——基于互联网协议,REST和SOAP推动数据和信息的通讯. 由于这些web服务暴露于网络并且分布于不同的网络,所以它们很容易受到风险和安全威胁,从而影响基于它们的进程.因此,web服务或API测试非常有必要,可以确保它们执行正确并正确地响应查询. 市场上有不少商业和开源的测试工具可

从开发的角度比较 ASP.NET Web 服务与 WCF

Windows Communication Foundation (WCF) 具有一个 ASP.NET 兼容模式选项,用户使用此选项可以对 WCF 应用程序进行编程和配置,使其像 ASP.NET Web 服务一样,并且还可以模仿这些服务的行为.以下各部分基于使用这两种技术开发应用程序的要求来比较 ASP.NET Web 服务和 WCF. 数据表示形式 一般情况下,使用 ASP.NET 开发 Web 服务首先要定义服务要使用的任意复杂数据类型.ASP.NET 依赖于 XmlSerializer 将

J2EE基础之Web服务简介

J2EE基础之Web服务简介 1.什么是Web服务? 在人们的日常生活中,经常会查询网页上某城市的天气信息,这些信息都是动态的.实时的,它是专业的气象站提供的一种服务.例如,在网上购物时,通常采用网上支付的方式,这是通过使用第三方提供的支付工具来实现的.在网络上提供这样的服务,我们称之为Web服务. 从软件开发者的角度来看,Web服务是一组规范的集合.这种规范用来定义不同应用系统之间是如何交互的,包括信息传递的内容.格式,信息的传递协议,以及相关的安全.策略和互操作等关键特性. 从编程使用者的角

基于 REST 的 Web 服务:基础

基础 REST 定义了一组体系架构原则,您可以根据这些原则设计以系统资源为中心的 Web 服务,包括使用不同语言编写的客户端如何通过 HTTP 处理和传输资源状态. 如果考虑使用它的 Web 服务的数量,REST 近年来已经成为最主要的 Web 服务设计模型. 事实上,REST 对 Web 的影响非常大,由于其使用相当方便,已经普遍地取代了基于 SOAP 和 WSDL 的接口设计. REST 这个概念于 2000 年由 Roy Fielding 在就读加州大学欧文分校期间在学术论文“Archit