零基础入门JavaWeb——HTTP知识

一、概念

HTTP:是超文本传输协议(Hyper Text Transfer Protocol)。

1.1 HTTP的作用

HTTP最大的作用就是确定了请求和响应数据的格式。浏览器发送给服务器的数据:请求报文;服务器返回给浏览器的数据:响应报文

1.2 HTTP的组成

HTTP协议由请求和响应两部分构成,请求时由客户端往服务器传输数据,响应是由服务器往客户端传输数据。

二、请求报文

2.1 请求报文的三个部分

请求报文由三部分组成:请求行、请求信息头和请求体。

2.1.1 请求行

作用:展示当前请求的最基本信息,包括如下信息:

  • 请求方式
  • 访问地址
  • HTTP协议的版本

2.1.2 请求信息头

作用:通过具体的参数对本次请求进行详细的说明。
格式:键值对,键和值之间使用冒号隔开。

名称功能
Host服务器的主机地址
Accept声明当前请求能够接受的媒体类型
Referer当前请求来源页面的地址
Content-Length请求体内容的长度
Content-Type请求体的内容类型,这一项的具体值是媒体类型中的某一种
Cookie浏览器访问服务器时携带的Cookie数据

2.1.3 请求体

作用:作为请求的主体,发送数据给服务器。其实就是POST请求方式下的请求参数。

1.form data

含义:当前请求体是一个表单提交的请求参数。

2. Request Payload

含义:整个请求体以某种特定格式来组织数据,例如JSON格式。

三、请求方式

HTTP1.1中共定义了八种请求方式:

  • GET:从服务器端获取数据
  • POST:将数据保存到服务器端
  • PUT:命令服务器对数据执行更新
  • DELETE:命令服务器删除数据
  • HEAD
  • CONNECT
  • OPTIONS
  • TRACE

3.1 GET请求和POST请求的对比

GET请求

  1. 没有请求体
  2. 请求参数附着在URL地址后面
  3. 请求参数在浏览器地址栏能够直接被看到,存在安全隐患
  4. 在URL地址后面携带请求参数,数据容量非常有限。如果数据量大,那么超出容量的数据会丢失
  5. 从报文角度分析,请求参数是在请求行中携带的,因为访问地址在请求行

POST请求

  1. 有请求体
  2. 请求参数放在请求体中
  3. 请求体发出数据的大小没有限制
  4. 可以发送各种不同类型的数据
  5. 从报文角度分析,请求参数是在请求体中携带的
  6. 由于请求参数是放在请求体中,所以浏览器地址栏看不到

四、响应报文

响应报文包括响应状态行、响应消息头和响应体。

4.1 响应状态行

HTTP/1.1  200  OK
  • HTTP协议版本
  • 响应状态码
  • 响应状态码的说明文字

4.2 响应消息头

响应体的说明书;服务器端对浏览器端设置数据。

常见的响应消息头

名称功能
Content-Type响应体的内容类型
Content-Length响应体的内容长度
Set-Cookie服务器返回新的Cookie信息给浏览器
location在重定向的情况下,告诉浏览器访问下一个资源的地址

4.3 响应体

服务器返回的数据主体,有可能是各种数据类型。

  • HTML页面
  • 图片
  • 视频
  • 以下载形式返回的文件
  • CSS文件
  • JavaScript文件

4.4 响应状态码

作用:以编码的形式告诉浏览器当前请求处理的结果。

状态码含义
200服务器成功处理了当前请求,成功返回响应
302重定向
400请求参数问题
403没有权限
404找不到目标资源
405请求方式和服务器端对应的处理方式不一致
406请求扩展名和实际返回的响应体类型不一致
50X服务器端内部错误,通常都是服务器端抛异常了

4.4.1 404产生的具体原因

  1. 访问地址写错了,确实是没有这个资源
  2. 访问了WEB-INF目录下的资源
  3. Web应用启动的时候,控制台已经抛出异常,导致整个Web应用不可用,访问任何资源都是404
  4. 服务器端缓存

学海无涯苦作舟