URL
平时我们所说的网址,就是URL,
网址:http://www.baidu.com:80/s? 统一资源定位符 (URL)
URL协议名://用户名:密码@服务器地址:端口/资源路径?查询字符串#片段标识符
为什么' + ' 使用' 2b '表示?因为http协议中特殊字符一般都有特殊含义,不能随意使用,如果查询字符串中也有特殊字符,这样将造成http协议解析过程中的二义性,因此需要对查询字符串中的特殊字符进行编码
编码格式:前四个位组成一个数字,后四位组成一个数字,使用两个数字合起来组成一个字符串,为了表明这两个字符是特殊字符编码后的数据,因此在前边加上%进行表示;
这个转换特殊字符和解码特殊字符的过程就叫做urlencode/urldecode
请求格式
首行:请求方法 URL 协议版本
头部:请求的属性,冒号分割的键值对,每组属性之间用\n隔开
\r\n
正文:空行之后的内容都是body,body允许未空字符串,如果body不为空,则在头部中的
Content-Length属性标识Body的长度
响应格式
首行:版本 状态码 状态码解释
头部:请求的属性,冒号分割的键值对,用\n将每组隔开
\r\n
Body:空行之后的内容都是Body,Body允许为空字符串,如果Body中有数据,那么用头部中
Content-Length标识出Body的size,如果响应返回了一个html页面,那么html页面的数据就在Body中