HTTP get和post请求,404 405错误

一、 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请求?

  1. 你这个请求是想获取服务端的数据,还是想向服务器发送数据。如果你是想从服务器上获取资源,建议使用GET请求,如果你这个请求是为了向服务器提交数据,建议使用POST请求。
  2. 大部分的form表单提交,都是post方式,因为你form表单中要填写大量的数据,这些数据是收集用户的信息,一般是需要传给服务器,服务器将这些数据保存/修改等。
  3. 如果表单中有敏感信息,还是建议使用post请求,因为get请求会回显敏感信息到浏览器地址栏上。(例如:密码信息)
  4. 做文件上传,要传的数据不是普通文本,一定是post请求。
  5. 不管你是get请求还是post请求,发送的请求数据格式是完全相同的,只不过位置不同,格式都是统一的:
    name = value&name = value&name = value&name = value
    name是什么?以HTML的form表单为例:form表单中input标签的name。
    value是什么?以HTML的form表单为例:form表单中input标签的value,就是用户在表单中输入的内容。

你可能感兴趣的:(计算机网络,http,服务器,网络)