http协议简介

http是超文本传输协议,是用于从万维网服务器传输超文本到本地浏览器的传送协议。http是一个基于TCP/IP通信协议来传递数据。


1.工作原理:http协议工作于客户端-服务端架构上。浏览器作为http客户端通过url向http服务端即web服务器发送所有请求。web服务器根据收到的请求后,向客户端发送响应信息。

2.web服务器:Apache服务器,IIS服务器(internet information services)

3.http特点:
1)无连接:限制每次连接只处理一个请求。处理完成并收到客户的应答后即断开连接。
2)媒体独立:可传输任何类型的数据。
3)无状态:对于事务处理没有记忆能力。

4.http协议通信流程:web Browser和http Server之间使用http protocol进行交互。

web Browser—http Server—CGI Program(通用网关接口)—Database

5.http消息结构
1)客户端请求消息:
请求行:请求方法/URL/协议版本
请求头部:Accept/Accept-Charset/Accept-Encoding/Accept-Language/Connection/Cookie/Host/Referer/User-Agent
空行:
请求数据:

2)服务器响应消息
状态行:协议版本/状态码及其描述
消息报头:Date/Content-Type/Content-Length/server/Connection/Cache-Control
空行:
响应正文:html文档

6.http请求方法
1)get:请求指定的页面信息,并返回实体主体。
2)head:请求指定的页面信息,返回的响应中没有具体的内容,只用于获取报头
3)post:向指定资源提交数据进行处理请求。例如提交表单或者上传文件。
4)put:从客户端向服务器传送的数据取代指定的文档的内容。
5)delete:请求服务器删除指定的页面。
6)connect:预留给能够将连接改为管道方式的代理服务器。
7)options:允许客户端查看服务器的性能。
8)trace:溯源,回显服务器收到的请求,用于测试或诊断。

7.http请求头
1)Accept 浏览器能够处理的内容类型
2)Accept-Charset 浏览器能够显示的字符集
3)Accept-Encoding 浏览器能够处理的压缩编码
4)Accept-Language 浏览器当前设置的语言
5)Connection 浏览器和服务器之间连接的类型
6)Cookie 当前页面设置的任何Cookie
7)Host 发送请求的页面所在的域
8)Referer 发出请求的页面的URL
9)User-Agent 浏览器的用户代理字符串

8.http响应头
1)Allow:服务器支持哪些请求方法。如get、post等。
2)Content-Encoding:文档的编码方法。
3)Content-Length:内容长度
4)Content-Type:后面的文档属于什么MIME类型。
5)Date:当前的GMT时间。
6)Expires:文档过期时间
7)Last-Modified:文档的最后改动时间
8)Location:表示客户应该到哪里去提取文档。
9)Refresh:浏览器应该在多少时间之后刷新文档。
10)Server:服务器名字。
11)Set-Cookie:设置和页面关联的Cookie。
12)WWW-Authenticate:客户应提供什么类型的授权信息。
13)Cache-Control:控制HTTP缓存

9.http状态码
1)http状态码分类:由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后面两个数字没有分类的作用。共分为5种类型:
1**:信息,服务器收到请求,需要请求者继续执行操作
2**:成功,操作被成功接收并处理
3**:重定向,需要进一步的操作以完成请求。
4**:客户端错误,请求包含语法错误或无法完成请求。
5**:服务器端错误,服务器在处理请求的过程中发生了错误。

2)常见http状态码
200:请求成功
301:资源被永久的转移到其他URL
404:请求的资源不存在
500:服务器内部错误

3)http状态码列表
100:Continue 继续,客户端应该继续其请求
101:Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如切换到http的新版本协议。
200:OK 请求成功。一般用于GET与POST请求
201:Created 已创建。成功请求并创建了新的资源
202:Accepted 已接受。已经接受请求,但未处理完成。
203:Non-Authoritative Information 非授权信息。但返回的meta信息不在原始的服务器,而是一个副本。
204:No Content 无内容。服务器成功处理,但未返回内容
205:Reset Content 重置内容。服务器处理成功,用户终端应重置文档视图。可通过此返回码清除浏览器的表单域
206:Partial Content 部分内容。服务器成功处理了部分GET请求
300:Multiple Choices 多种选择。请求的资源可包括多个位置,相应可以返回一个资源特征和地址的列表用于用户终端选择。
301:Moved 永久移动。请求的资源已被永久的移动到新的URL,返回信息会包括新的URL,浏览器会自动定向到新的URL。今后任何新的请求都应使用新的URL代替。
302:Found 临时移动。与301类似。但资源只是临时被移动。客户端应继续使用原有URL。
303:See Other 其他地址。与301类似。使用GET和POST请求查看
304:Not Modified 未修改。所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会换成访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源。
305:Use Proxy 使用代理。所请求的资源必须通过代理访问
306:Unused 已经被废弃的http状态码
307:Temporary Redirect 临时重定向。与302类似。使用GET请求重定向。
400:Bad Request 客户端请求的语法错误,服务器无法理解。
401:Unauthorized 请求要求用户的身份认证。
402:Payment Required 保留,将来使用
403:Forbidden 服务器理解请求客户端的请求,但是拒绝执行此请求
404:Not Found 服务器无法根据客户端的请求找到资源。
405:Method Not Allowed 客户端请求中的方法被禁止。
406:Not Acceptable 服务器无法根据客户端请求的内容特性完成请求。
407:Proxy Authentication Required 请求要求代理的身份认证,与401类似,但请求者应当使用代理进行授权
408:Request Time-out 服务器等待客户端发送的请求时间过长,超时。
409:Conflict 服务器完成客户端的PUT请求时可能返回此代码,服务器处理请求是发生了冲突。
410:Gone 客户端请求的资源已经不存在。410不同于404,如果资源以前有限制被永久删除了可使用410代码,网站设计人员可以通过301代码指定资源的新位置。
411:Length Required 服务器无法处理客户端发送的不带Content-Length的请求信息
412:Precondition Failed 客户端请求的先决条件错误。
413:Request Entity Too Large 由于请求的实体过大,服务器无法处理,英雌拒绝请求。为防止客户端的连续请求,服务器可能会关闭连接。如果只是服务器暂时无法处理,则会包含一个Retry-After的响应信息。
414:Request-URL Too Large 请求的URL过长,服务器无法处理
415:Unsupported Media Type 服务器无法处理请求附带的媒体格式
416:Requested range not satisfiable 客户端请求的范围无效
417:Expectation Failed 服务器无法满足Expect的请求头信息
500:Internal Server Error 服务器内部错误,无法完成请求
501:Not Implemented 服务器不支持请求的功能,无法完成请求
502:Bad Gateway 充当网关或代理的服务器,从远端服务器接收到了一个无效的请求。
503:Service Unavailable 由于超载或系统维护,服务器暂时无法处理客户端的请求。延时的长度可包含在服务器的Retry-After头信息中。
504:Gateway Time-out 充当网管或代理服服务器,未及时从远端服务器获取请求。
505:HTTP Version not supported 服务器不支持请求的HTTP协议的版本,无法完成处理。

10.HTTP content-type 内容类型
一般是指网页中存在的Content-Type,用于定义网络文件的类型和网页的编码,决定浏览器将以什么形式、什么编码读取这个文哦件,这就是经常看到一些Asp网页点击的结果却是下载到的一个文件或一张图片的原因。

 

posted @ 2018-08-09 16:31  susana123  阅读(130)  评论(0编辑  收藏  举报