JAVA web 相关知识点
1: web的三个核心标准:
URL: http VS https
HTTP: 通信协议,客户端/服务器端信息交互方式; 特点是无状态;
HTML:
2: HTTP 协议:
http是通用的,无状态的,面向对象的协议。
HTTP协议URL: http://host[:port] [path ] // 三个部分: 协议类型; 主机名(域名或IP地址); 端口号默认是80; 路径以及文件名。
3: Http协议请求格式:
例子: POST /tskcommercewebservices/v2/fivestartsk/users/P160111/employee HTTP/1.1
Host: localhost:9102
Authorization: Bearer 923b8c5a-2b36-46cd-babd-6c72fd0f0a93
Content-Type: text/html;charset=UTF-8
A 请求行:包含3个内容:方法(method) 请求资源URL, 和 HTTP版本。 格式: Method Request-RUI HTTP-version
这里的方法有14种:
GET: 此方法URL传递的参数有限,IKB以下。
POST: 附加的数据没有限制。
HEAD: 取得URI指定的资源的响应消息的报头。
PUT: 保存
DELETE:删除
OPTIONS:查询服务器的性能,查询资源的选项与需求。
TRACE:请求服务器回送收到的请求信息,测试和诊断。
PATCH: 与PUT相似,实体种包含一个表,表中说明该资源的区别。
MOVE: 移动资源
COPY: 复制资源
LINK: 建立连接
B: 请求报头:可选,附加信息,以及客户端自身的信息,常用的有:
Accept : 客户端接收的信息类型。
user-agent: 将客户端操作系统名称和版本信息,浏览器名称,和版本信息告诉服务器
accept-charset: 客户端接受的字符集。
accept-encoding: 客户端接受的编码
accept-language: 可接受的语言
host: 主机和端口,默认端口是80
connection: 指定请求后,保持/关闭连接
C:请求体:可选(如果是get,不能包含本部分, 而POSt/ PUT,DELETE可以带上)。
3: 解析HTTP协议响应
响应由3部分:
A: 状态行: HTTP version, 状态码, 以及解析状态码的短语。
1XX: 提示信息,如请求收到,正在处理。
2XX:成功
3XX: 重定向
4XX: 客户端错误,请求端含错的内容。
5XX:服务器错。
200 OK
304 Not modified
400 Bad request
404 Not found
302/307 : 表示临时重定向,请求的文档已经临时移动到其他位置,该文档新的URL将在location响应报头中给出。
401: 浏览器访问的是受密码保护的
403: 拒绝提供服务
404:找不到资源
500: 内部服务器错误。
503:服务器暂时性超载。不能处理当前请求。
B:响应报头:allow: server支持的请求方法。
Content-Encoding: 编码
Content-Length:响应中数据的字节长度
Content-Type:MIME类型
Date: 发送日期
Last-Modified: 返回数据的最后修改时间
Location: 重定向请求到一个新URL。
Refresh: 指定浏览器缓存数据的时间。
Expires: 缓存数据的时间
Server: 服务器名称。
C:响应正文:
4: get VS post:
Get : 请求资源。可以在URL后面附件一些参数。
缺点: 如果用户在地址栏中输入太长的内容,可能导致GET无法正常工作。
另外参数是追加到地址栏中,因此不安全。
参数用?开头,参数之间用&分割
Post:不仅可以请求资源,而且可以发送一些表单数据。
post安全;
post传递数据数量不受限制。但是要将Content-Type设置为application/x-www.form-urlencoded, 将Content-length 设置为实体内容的长度。