HTTP协议报文结构
结构有四部分分为1.首行2.请求头(响应头)3.空行4.正文(body).
首行
首行分为三个部分:1.方法2.URL3.版本号
上面是简化版本的
而这幅图才是完整的.登录信息现在基本已经不用了,服务号端口是用于区分应用程序,带层次的文件路径是看访问服务器上的哪个资源.
URL
URL可以省略的部分
URL中的结构都可以省略.
- IP域名省略:此时就相当于访问服务器的地址
- 端口号省略:省略时浏览器会自动加上端口,http的端口号就是80,https的端口号就是443.
- 文件路径省略:如果省略就是方法更目录,也就是服务器的主页.
- 查询字符串省略:都是可以通过后端来处理的.
URL ENCODE
url中是带有query string,它会带有一些特殊符号,本身会带有一些特殊含义导致解析失败,就要通过url encode 来进行转译
HTTP的请求方法
请求方法中用的最多的就是GET和POST方法
get方法就是获取数据,并且把一些自定义的数据放在querystring中,body通常为空.
post方法就是传输一个数据,把自定义的数据放在body中,querystring通常为空.
但是由于HTTP的自由性,他们俩本质上并没有多大的区别
HTTP的请求报头
- Host :表示服务器的地址和窗口
- Content-Length:用来描述body的长度有多少字节,用来解决粘包问题
- Content-Type :表示请求中的数据格式