http协议简介
http协议概念:
http协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是从万维网(WWW: world wide web)服务器传送超文本到本地浏览器的传送协议。
http工作原理:
http协议工作于服务端-客户端(C/S)构架上,浏览器做为http客户端通过URI向http服务器即web服务器发送所有请求,web服务器接到请求后向客户端发送响应信息。
http端口号:默认为80,可随意修改。 常见web服务器:apache服务器 tomcat服务器 IIS服务器(internet information services)等。
http协议三点注意(特点):
1、http是无连接的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户端请求,并收到应答后,即断开连接。优点:节省传输时间。
2、http媒体是独立的:也就是说服务器和客户端只要知道如何处理数据内容,任何类型的数据都可以通过http传输。客户端和服务器指定使用适合的MIME-type内容类型。
3、http是无状态的:无状态是指http协议对事务的处理没有记忆能力。缺点:缺少状态就意味着如果后续处理需要前面的信息的话就需要重传,这样就可能导致每次传输的数据量增大。当然如果每次处理的内容如果不需要之前的信息,此时的应答就比较快。
http消息结构:
http使用统一资源标识符(Unform Resource Identifiers,URI)来传输数据和建立连接的。一旦建立连接后,数据就通过类似internet所使用邮件的格式[RFC5322]和多用途internet的邮件扩展(MIME)[RFC2045]来传送。
GET请求实例:
客户端请求构成:请求行、请求头部、空行、请求数据
GET /hello.txt HTTP/1.1--------------------------------------------------------请求行: 格式→请求方法-空格-URI-空格-协议版本-回车符-换行符
User-Agent: curl/7.16.3 libcurl/7.16.3 OpenSSL/0.9.7l zlib/1.2.3---------------请求头部:格式→头部字段名-冒号-值-回车符-换行符
Host: www.example.com----------------------------------------------------------请求头部:格式→头部字段名-冒号-值-回车符-换行符
Accept-Language: en, mi--------------------------------------------------------请求头部:格式→头部字段名-冒号-值-回车符-换行符
-----------------------------------空行-----------------------------------------
---------------------------------请求数据----------------------------------------
服务器响应构成:状态行、消息报头、空行、响应正文
HTTP/1.1 200 OK---------------------------------------------------------------状态行 Date: Mon, 27 Jul 2009 12:28:53 GMT-------------------------------------------消息报头 Server: Apache----------------------------------------------------------------消息报头
Last-Modified: Wed, 22 Jul 2009 19:15:56 GMT----------------------------------消息报头
ETag: "34aa387-d-1568eb00"----------------------------------------------------消息报头
Accept-Ranges: bytes----------------------------------------------------------消息报头
Content-Length: 51------------------------------------------------------------消息报头
Vary: Accept-Encoding---------------------------------------------------------消息报头
Content-Type: text/plain------------------------------------------------------消息报头
------------------------------------空行---------------------------------------------
----------------------------------响应正文--------------------------------------------
http请求方法:
序号 | 方法 | 描述 |
---|---|---|
1 | GET | 请求指定的页面信息,并返回实体主体。 |
2 | HEAD | 类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头 |
3 | POST | 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。 |
4 | PUT | 从客户端向服务器传送的数据取代指定的文档的内容。 |
5 | DELETE | 请求服务器删除指定的页面。 |
6 | CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
7 | OPTIONS | 允许客户端查看服务器的性能。 |
8 | TRACE | 回显服务器收到的请求,主要用于测试或诊断。 |
http响应头信息:
http状态码:
常见的http状态码:200--------请求成功;301-------资源(网页)被永久转到其他的URI;404----------请求的资源(网页)不存在;500----------内部服务错误。
更多见 http://www.runoob.com/http/http-status-codes.html
http内容类型(content-type):
见表 http://www.runoob.com/http/http-content-type.html
(总结自菜鸟教程)