什么是协议 ?
-
协议实质上是某些人,或者某些组织提前指定好的一套规范,大家都按照这个规范来,就可以做到沟通无障碍。
-
协议就是一套规范,就是一台标准,有其他人或其他组织来负责制定的。
HTTP协议 ?!
-
HTTP协议:是W3C制定的一种超文本传输协议。
-
W3C:
-
万维网联盟组织
-
负责制定标准:HTTP HTML4.0 HTML5 XML DOM标准等规范都是万维网所制定的。
-
万维网之父:蒂姆·伯纳斯·李
-
-
什么是超文本?
-
超文本就是不是普通文本,比如流媒体:声音,视频,图片等。
-
HTTP协议支持:不但可以传输普通字符串,同样支持流媒体信息。
-
-
B/S表示:B/S结构的系统(浏览器访问WEB服务器的系统)
-
浏览器 向 WEB服务器发送数据,叫做:请求(request)
-
WEB服务器 向 浏览器发送数据,叫做:响应(response)
-
-
这种协议游走在B和S之间。这样子B和S才能够解耦合。
-
那么,什么是解耦合呢?
-
B不依赖于S。
-
S也不依赖于B。
-
-
怎么查看的协议内容?
-
使用火狐浏览器(其他浏览器应该也是类似的):F12。然后找到network,通过这个面板可以查看协议的具体内容。
-
-
HTTP协议的具体响应报(response)
-
HTTP/1.1 200 //请求头 Content-Type: text/html;charset=UTF-8 //请求体 Content-Length: 1117 Date: Tue, 15 Feb 2022 15:09:07 GMT Keep-Alive: timeout=20 Connection: keep-alive //空白行 <html> //响应体 <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>用户登录</title> </head> <body> </body> </html>
-
状态行
-
三部分组成
-
第一部分:协议版本号(HTTP/1.1)
-
第二部分:状态码
-
200 表示访问成功
-
404 表示访问的资源不存在,通常要么是路径写错了,要么是路径写错了。要么就是对应的资源并没有启动。总之404错误是前端的错误。
-
405 表示前端发送的请求方式与后端处理的方式不一致。
-
500 表示服务器端的程序出现了异常,一般认为是服务器端的错误导致的。
-
以4开始的,一般是浏览器端的错误导致的。
-
以5开始的,一般是服务器端的错误导致的。
-
-
第三部分:状态的描述信息。
-
ok表示成功。
-
not found表示资源找不到。
-
-
-
请求行
-
也是三部分组成
-
请求方式(7种)
-
get,post,delete,put,head,options,trace
-
-
URI
-
什么是URI?统一资源标识符。代表网络中某个资源的名字,但是通过URI是无法定位的。
-
什么是URL?统一资源定位符。代表网络中某个资源的名字,但是通过URL是可以定位到的。
-
URL和URI是什么关系?
-
URL包括URI。
-
例如:
-
URI:/School/login
-
-
-
第三部分:HTTP协议版本号
-
-
-
-
GET请求和POST请求有什么区别?
-
get请求发送请求的时候,数据会挂在URL的后面,然后跟一个?,然后在跟数据。这样子会导致数据会显示在地址栏里面。会泄露数据。
-
post会在请求体中装填数据,并不能从地址栏上直接获得。但是哪怕是在请求体中所发送,也应该注意密码等敏感信息应该以加密过后的密文进行发送。
-
发送的请求数据格式一律是:name=value&name=value&name=value......
-
<input type="text" name="userid" id="userid" value=""/>
-
name是什么?
-
以form表单为例:form表单中input标签的name
-
-
value是什么?
-
以form表单为例:form表单中input标签的value
-
-
GET和POST该怎么来选择?
-
get请求只能发送普通的字符串。并且发送的字符串长度有限制,不同的浏览器限制不同,并没有明确的规定。所以说get无法发送大数据量。
-
post请求可以发送大数据,流媒体。理论上没有长度限制。
-
W3C中是这样说的:get比较适合从服务器来获取数据,post比较适合向服务器发送数据。正好印证了get与post的单词之意。