简单写一下HTTP协议:
以
http://www.aspxfans.com:8080/news/index.jsp?boardID=5&ID=24618&page=1#name
为例:
http协议的特点:简单,灵活(能接受任意类型的的数据传输);无连接(每次保证一个请求连接);无状态(错误必须重请求)
http之URL:(这里需要说明URI:统一资源分配符)
①协议部分:http/https(不加密/加密的区别),后面跟“:/”分隔符号;
②域名部分:www.aspxfans.com
③端口部分:跟在域名后面的是端口部分用“:”隔开(如果省略端口,则是默认端口);8080
④虚拟目录部分:从域名的第一个“/”到最后一个“/“为止,是虚拟目录部分。/news/
⑤文件名部分:从域名后的最后一个”/“开始到”?“为止。若没有”?“,则到”#“为止,若两个部分都没有,则最后一个”/“到结束是文件名部分。index.jsp不是必须的(不是必须部分)
⑥锚部分:从”#“开始到结束锚部分;name
⑦参数部分:从”?“开始到”#“为止之间的部分为参数部分。参数之间用”&“作为分割符号。
http之请求:
第一部分:请求行,说明请求类型和http版本。
第二部分:请求头部,说明服务器要使用的附加信息。
第三部分:空行,请求头部必须为空行
第四部分:请求主体,可以任意添加其他数据。
请求头的一些说明:
①form-data: 是表单中有文件时,常用:multipart/form-data,作用是将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。
②x-www-form-urkencoded: 正常表单,常用:application/x-www-from-urlencoded,作用是会将表单内的数据转换为键值对;
③raw: 可以上传任意格式的文本,可以上传text、json、xml、html等
④ binary: 相当于Content-Type:application/octet-stream,从字面意思得知,只可以上传二进制数据,通常用来上传文件,由于没有键值,所以,一次只能上传一个文件。
例子:
post / HTTP1.1-----------------------------------------------------请求行---------------------------响应:状态行
Host:www.wrox.com
User-Agent:Mozilla/4.0 compatible
Content-Type:application/x-www-form-urkencoded
Content-length:40
Connection:Keep-Alive--------------------------------------------请求头部--------------------消息报头
//下面空一行
name="name" -----------------------------------------请求主体------------------响应正文
-请求头部:
host:请求目的地
User-Agent:User-Agent
Content-Type:表示具体请求中的媒体类型信息
TCP/IP协议参考:https://blog.youkuaiyun.com/u012371712/article/details/80795297