HTTP协议基础:
HTTP,超文本传输协议( HyperText Transfer Protocol )。互联网应用最为广泛的一种网络应用层协议。它可以减少网络传输,使浏览器更加高效。
通常HTTP消息包括客户机向服务器的请求消息和服务器向客户机的响应消息。
1.请求消息:
请求消息:请求行 请求头 空行 请求体
浏览器—>发给—>服务器。主旨内容包含4部分:
请求行:说明请求类型,要访问的资源,以及使用的http版本
请求头:说明服务器要使用的附加信息,
空行:必须!,即使没有请求数据·
请求数据:也叫主体,可以添加任意的R他数据。
1. GET /hello.c Http1.1\r\n 2. Host: localhost:2222\r\n 3. User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:24.0) Gecko/201001 01 Firefox/24.0\r\n 4. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n 5. Accept-Language: zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3\r\n 6. Accept-Encoding: gzip, deflate\r\n 7. Connection: keep-alive\r\n 8. If-Modified-Since: Fri, 18 Jul 2014 08:36:36 GMT\r\n 【空行】\r\n
2.响应消息
响应消息:状态行 消息报头 空行 响应正文
服务器—>发给―>浏览器。主旨内容包含4部分:
状态行:包括http协议版本号,状态码,状态信息
消息报头:说明客户端要使用的一些附加信息
空行:必须
响应正文:服务器返回给客户端的文本信息
3.请求方法:
(1)GET
请求指定的页面信息,并返回实体主体。
(2)POST
向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
1. Http1.1 200 OK 2. Server: xhttpd Content-Type:text/plain; charset=iso-8859-1 3. Date: Fri, 18 Jul 2014 14:34:26 GMT 5. Content-Length: 32 ( 要么不写 或者 传-1, 要写务必精确 ! ) 6. Content-Language: zh-CN 7. Last-Modified: Fri, 18 Jul 2014 08:36:36 GMT 8. Connection: close \r\n [数据起始。。。。。 。。。。 。。。数据终止]
4.状态码:
200:正确返回
401:用户权限不足
404:请求的资源不存在
500:服务端出错
300系列:重定向
4.GET与POST的区别:
在本质上两者都是通过tcp进行通信传输的顶层协议,但是
GET请求参数在请求行中,在url后,POST请求参数在请求体中
GET请求的url长度有限制,POST没有
5.默认端口号:
http默认端口号:80,https默认端口号443,ftp默认端口号21