HTTP Web基础知识
学习《Spring+Spring MVC+Mybatis整合开发实战》笔记
前言
- HTML(HyperText Markup Language,超文本标记语言)与HTTP(Hyper Text Transfer Protocol,超文本传输协议)
- HTTP请求类型:GET与POST
- MIME类型(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)
- 状态码:服务端返回相应状态的编码,由三位数字组成。
一、HTML与HTTP
HTML是一种标记语言,使用<html>
、<head>
、<title>
、<body>
等标签来开发网页。该类文档可以通过使用浏览器打开直接查看页面效果。
.html文档希望被更多人看到,需要将这个文档放在服务器上,通过BS模式(浏览器-服务器模式)进行开发和访问。服务器和浏览器的传输需要遵循一定的规则彼此才能认识和沟通,这个规则就是HTTP协议。
HTTP是位于应用层的协议,在此协议下,浏览器端发出一个遵循协议的请求,服务器返回浏览器可以识别的响应。在浏览器端,通过URL(Uniform Resource Locator,统一资源标识符)来建立连接和获取数据。
HTTP请求具体如下:
- 请求行:包括请求类型(常见有GET与POST)、请求的资源地址(URL地址)和使用HTTP协议版本等信息。请求地址和请求类型是客户端请求需要指定的。
- 请求头:包括客户端主机IP和端口(HOST)、浏览器信息(User-Agent)、客户端能接收的数据类型(Accept)、客户端字符编码集(Accept-charset)和Cookie等。
- 请求体:也称为主体或消息体,为请求的参数。
HTTP协议响应消息:
- 状态行:主要包括响应成功或失败的状态。
- 相应头:包括服务器响应的内容类型和字符类型(Content-Type)、响应时间(date)、服务器类型(server)和响应内容的长度等。
- 响应正文:响应给客户端的文本信息
二、HTTP请求类型
GET和POST这两种请求类型在使用上最大差异是参数传递方式的不同。
- GET请求参数通过URL直接传递,放在HTTP的请求头中,以"?"分隔URL和参数数据,使用“=”连接参数变量和值,多个参数之间使用“&”分隔。
如:http://localhost:8888/ssmi/login.action?name=myname&password=mypassword - POST请求的参数数据放在HTTP的请求体中,不会显示在地址中。请求体中的参数存在的格式也是key=value的键值对格式。
GET请求一般用于资源的获取(如打开某个页面),POST请求常用于资源的建立或修改(如提交表单或文件上传)。
三、MIME类型
MIME类型的定义由两部分组成,使用“/”分隔,前面是大类,后面是具体的类型。MIME主要的大类有Text、Application、Image、Audio、Video等。常见的具体MIME类型如下:
- text/html:HTML格式文档
- text/plain:纯文本格式
- image/jpeg:JPEG格式的图片
- image/gif:GIF格式的图片
- application/vnd.ms-powerpoint:PPT文件
- application/vnd.ms-excel:Excel文件
- application/xml:xml文件
- application/json:json文件
- application/msword:Word文档格式
- application/octet-stream:二进制流数据
- application/x-www-form-urlencoded:From表单数据
- multipart/form-data:文件上传的媒体格式类型
- video/quicktime:Apple的QuickTime电影格式类型
代码如下(示例):
四、状态码
首位数字定义响应类别:
- 1xx:已接收,表示请求已接收并继续处理
- 2xx:成功,表示请求被成功接受、处理与返回
- 3xx:重定向,表示请求需要更进一步地处理
- 4xx:客户端错误,一般是由于请求有语法错误或请求无法实现
- 5xx:服务器端错误,一般是服务器未能处理合法的请求
常见状态代码有:
200:状态信息OK,请求和处理成功
400:状态信息Bad Request,错误的请求,客户端请求有语法错误,服务器不能理解
401:状态信息Unauthorized,请求未经授权
403:状态信息Forbidden,服务器接收到请求,但拒绝提供服务
404:状态信息Not Found,请求的资源不存在
500:状态信息Internal Server Error,服务器发生了内部错误
503:状态信息Server Unavailable,因服务器尚未开启等原因不能处理客户端的请求
总结
大概了解了HTTP Web的基础知识,但还存在较多困惑,只是记住了一些常见的。