目录
一、 HTTP协议包括:
1. 请求协议
浏览器 向 WEB服务器发送数据的时候,这个发送的数据需要转训遵循标准,这套标准中规定了发送的数据具体格式。
2. 响应协议
WEB服务器 向 浏览器发送数据的时候,这个发送的数据需要遵循一套标准,这套标准中规定了发送的数据具体格式。
二、 HTTP的请求协议:
1. HTTP的请求协议包括:4部分
- 请求行
- 请求头
- 空白行
- 请求体
2. 请求行包括三部分:
- 请求方式:
get(常用的),post(常用的),delete,put,head,option,strace - URI:
什么是URI?统一资源标识符。代表网络中某个资源的名字。
什么是URL? 统一资源定位符。代表网络中某个资源。
URI和URL什么关系,有什么区别?URL包括URI。
http://localhost:8080/servlet05/index.html 这是URL
servlet05/index.html 这是URI - HTTP协议版本号
三、HTTP的响应协议:
1. HTTP的响应协议包括:4部分
- 状态行
- 响应头
- 空白行
- 响应体
2. 状态行包括三部分:
- 协议版本号(HTTP/1.1)
- 状态码:
200表示请求响应成功,正常结束。
404表示访问的资源不存在,通常是因为要么是你路径写错了,要么是你路径写对了,但是服务器中对应的资源并没有启动成功。总之404错误是前端错误。
405表示前端发送的请求方式与后端请求的处理方式不一致时发生。
500表示服务器端的程序出现了异常。一般会认为是服务器端的错误导致的。 - 状态的描述信息:
ok 表示正常成功结果
not found表示资源找不到。
四、GET请求和POST请求区别:
- get请求发送数据的时候,数据会挂在URI的后面,并且在URI后面添加一个“?”,“?"后面是数据。这样会导致发送的数据回显在浏览器的地址栏上,所以发送数据的时候不要用get请求。
- post请求发送数据的时候,在请求体当中发送。不会回显到浏览器的地址栏上,也就是说post发送的数据,在浏览器地址栏上看不到
- get请求只能发送字符串。并且发送的字符串长度有限制,不同的浏览器限制不同。这个没有明确的规范。
- get请求无法发送大数据量。
- post请求可以发送任何类型的数据,包括普通字符串,流媒体等。。。。
- post请求可以发送大数据量,理论上没有长度限制。
- get请求在W3C中是这样说的: get请求比较适合从服务器端获取数据。
- post请求在W3C中是这样说的:post请求比较适合向服务器端传递数据。
- get请求是安全的。get请求是绝对安全的。为什么?因为get请求只是为了从服务器上获取数据。
- post请求是危险的。因为post请求是向服务器提交数据,如果这些数据通过后门的方式进入到服务器当中,服务器是很危险的。另外post是为了提交数据,所以一般情况下拦截请求的时候,大部分选择拦截(监听)post请求。
- get支持缓存,任何一个get请求最终的“响应结果”都会被浏览器缓存起来。实际上,你只要发送get请求,浏览器做的第一件事都是先从本地浏览器缓存中找,找不到的时候才会向服务器发送数据。
五、GET请求和POST请求如何选择,什么时候使用GET请求,什么时候使用POST请求?
- 你这个请求是想获取服务端的数据,还是想向服务器发送数据。如果你是想从服务器上获取资源,建议使用GET请求,如果你这个请求是为了向服务器提交数据,建议使用POST请求。
- 大部分的form表单提交,都是post方式,因为你form表单中要填写大量的数据,这些数据是收集用户的信息,一般是需要传给服务器,服务器将这些数据保存/修改等。
- 如果表单中有敏感信息,还是建议使用post请求,因为get请求会回显敏感信息到浏览器地址栏上。(例如:密码信息)
- 做文件上传,要传的数据不是普通文本,一定是post请求。
- 不管你是get请求还是post请求,发送的请求数据格式是完全相同的,只不过位置不同,格式都是统一的:
name = value&name = value&name = value&name = value
name是什么?以HTML的form表单为例:form表单中input标签的name。
value是什么?以HTML的form表单为例:form表单中input标签的value,就是用户在表单中输入的内容。