Web服务(一)HTTP基础详解

一、HTTP基本定义

超文本传输协议(英文:HyperText Transfer Protocol,缩写:HTTP)设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。目前有三个版本:http/0.9;http/1.0;/http/1.1。目前http/1.0和1.1被广泛应用。

http/0.9:仅用于传输HTML文档;

http/1.0:支持多媒体数据的处理;支持keep-live(持久连接);有缓存功能;

http/1.1:支持更多的请求方法和更精细的缓存控制;持久连接;

二、HTTP请求的过程

http事务的过程为:一次请求和与其对应的响应。

http请求:request

格式

<method> <request-URL> <version>

<headers>

<entity-body>


http响应:response

格式

<version> <status> <reason-phrase>

<headers> 

<entity-body> 

method   请求方法;希望服务器端执行的动作;如GET、POST、HEAD等  
request-URL   请求的资源;可以是相对路径(相对主机位置);也可以是完整的URL  
version   协议版本;格式:http/<major>.<minor>  
headers   http首部信息  
status   状态码  
reason-phrase   原因短语;数字状态易读信息  
entity-body   主体部分  

一次完整的请求过程:

Web服务(一)http基础详解

 

由于http是一种无状态(stateless)协议;所以无法记录每一次请求者的身份;并且每一次请求结束后立即断开。所以每一次请求都要先经过DNS解析、三次握手和四次断开;所以相当耗费CPU的时钟周期,浪费资源。通用提供效率有两种方法:

1、并行请求:同时发起多个请求和返回多个响应(第一次请求只能是一个资源);

2、持久连接:三次握手请求后不断开;客户端可以继续请求;缺陷是持久连接会导致占用资源;

断开方式:两种方式无论哪个先达到上限都执行断开

超时:在连接后规定一个持久连接的时间限定

请求资源最大数:允许连接后最多请求多少个资源

三、HTTP请求方法和响应状态码等信息

http请求的方法有:GET、HEAD、POST、DELETE、PUT、OPTIONS、TRACE...;前五种方法较为常用。

GET   请求获取一个资源;而需要服务器发送  
HEAD   请求一个资源,但是不需要服务器发送资源而仅传回响应的首部信息  
POST   提交表单;支持HTML表单提交;表单中有用户填入的数据;这些数据会发送到服务器端;由服务器存储至某位置  
PUT   向服务器写入文档;例如发布系统  
DELETE   请求删除URL指向的资源  
OPTIONS   探测服务器端对某资源所支持的请求方法  
TRACE   跟踪请求资源传输所经过防火墙、代理或网关等  
CONNECT   HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器  
扩展方法   LOCK、MKCOL、COPY、MOVE...  


http响应中的status状态码分为五种:

1xx:信息性状态码

2xx:成功状态码

200:OK

201:created

3xx:重定向状态码

301:Moved Permanentl;在响应报文中使用首部"Location:URL";指定资源现在所在的位置

302:Fonud(临时重定向);在响应报文中使用首部"Location:URL";指定临时资源位置

304:Not Modified(可以使用缓存);告诉客户端没有更改资源;条件式请求中使用

4xx:客户端错误信息

403:Forbidden;请求被服务器拒绝
    404:Not Found;服务器无法找到请求的URL
    405:Method Not Allowed;不允许使用此方法请求相应的URL

5xx:服务器端错误信息

500:Internal Server Error;服务器内部错误
    502:Bad Gateway;代理服务器从上级收到了一条伪响应
    503:Service Unavailable;服务器此时无法提供服务;但是将来可能可用

web服务的输入/输出结构:

1、单线程I/O结构:单个线程响应单个请求

2、多线程I/O结构:多个线程响应各对应的请求

3、复用的I/O结构:单个线程响应多个请求

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/8564349b04f759384f924d317685176a.html