一、HTTP之Request:
格式如下图所示:
参数说明:
- 请求方法:POST/GET
- URL: 以http://inanter.com/login?user=yxb&pwd=1234为例,只写inanter.com后面的字符串(官方叫作虚拟路径),前面的部分作为请求头HOST字段的值,其中HOST字段为请求头当中的必须字段。如果存在端口信息,也写在此字段当中。
- 回车符 CR 13
- 换行符 LF 10
- 当请求方式为POST时,请求头部分还应该包含Content-Length字段值,此处以十进制数表示响应主体的大小(byte[]数组的大小,并非字符串的长度。如果字符串含有中文时,字符串的长度值并不等于byte[]数组的长度)
二、HTTP之Response
第一行: 状态行(协议版本号+响应码+响应消息): HTTP/1.1 200 OK
第二~N行:消息头(以下只写必须的字段)+响应正文
第一种响应形式:
Content-Type: text/html;charset=utf-8
Content-Length: size
空行
响应主体二进制流
空行
第二种响应形式(分块传输数据):
Content-Type: text/html;charset=utf-8
Transfer-Encoding:chunked
空行
第1块数据长度(16进制数值表示,同content-length不一样)
块内容二进制流
第2块数据长度
块内容二进制流
第n块数据长度(最后一块)
块内容二进制流
0(必须。只有读到此处浏览器才认为数据读完成)
空行