【一、】JavaEE:
    1. JavaEE案例要使用到浏览器、服务器(Tomcat)、数据库。
    2. JavaEE案例程序不是通过main方法来运行,而是要放在服务器(Tomcat)来运行。
    3. JavaEE案例要使用到Servlet和jsp多个技术。
    4. JavaEE案例是将结果给打印到了浏览器上,而不是控制台上!
    5. JavaEE案例可以让更多的人去访问它、使用它!
    【二、】HTTP协议:
    [1]什么是超文本:
    超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。超文本更是一种用户界面范式,用以显示文本及与文本之间相关的内容。
    [2]什么是HTTP协议:
    a.HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写, HTTP是万维网(WWW:World Wide Web)的数据通信的基础。
    b.HTTP是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
    c.HTTP是一个基于TCP/IP通信协议来传递数据(HTML文件, 图片文件, 查询结果等)。
    d.HTTP位于应用层
    e.目前我们用的还是HTTP1.1版本的!!!
    [3]HTTP协议特点:
    a. 支持浏览器/服务器模式
    b. 简单快速
    c. 灵活(传输的数据类型多样)
    d. 短连接
    短链接是指每次请求响应完成后,连接会自动断开。从http1.1开始,我们使用的是长连接,长连接是每次请求响应完成后,连接会保持一小段的存活时间,供之后的请求使用。长连接要比短连接的效率高!
    e.单向性
    服务端永远是被动的等待客户端(浏览器)的请求。
    f.无状态
    无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量
    增大,用户体验度也不好。为了解决HTTP协议无状态,于是,两种用于保持HTTP连接状态的技术就应运而生了,一个是Cookie,而另一个则是Session。
    [4]HTTP协议中的URL、URI:
    URL介绍:
    URL(Uniform Resource Location统一资源定位符),可以帮助我们唯一定位互联网上的某一个资源,相当于是互联网资源的身份证号。
    URL由五个元素组成:
    a.传送协议
    b.域名或者IP地址
    c.端口号(以数字方式表示,若为HTTP的默认值“:80”可省略)
    d.请求资源路径
    e. 传递数据(在URL中传递数据是以key=value的结构进行数据绑定,以“?”字符为起点,
    每个参数以“&”隔开通常以UTF8的URL编码,避开字符冲突的问题)
    [举例]:http://127.0.0.1:8080/demo1/HelloServlet?name=尚学堂&birthday=1992-05-09
    http:// 是协议
    127.0.0.1是ip地址,也可以是域名
    8080 是端口号
    /demo1/HelloServlet 是请求资源路径,也就是URI
    name=尚学堂&birthday=1992-05-09 是请求传递的参数
    URI介绍:
    URI:(Uniform Resource Identifier),统一资源标识符,是一个用于标识某一互联网资源名称的字符串。
    URI是一个特别抽象的概念,URI包含了URL
    在Java中,当获取请求URI时,常是/demo1/HelloServlet。也就是参数。
    [5]HTTP协议的请求(掌握):
    Request 消息分为3部分: 第一部分叫Request line 请求行
    第二部分叫Request header 请求头
    第三部分是Request body 请求体、
    a.请求行中含有:请求的方式、URI、协议/版本。
    b.请求头用于说明是谁或什么在发送请求、请求源于何处,或者客户端的喜好及能力。服务器可以根据请求头部给出的客户端信息,
    试着为客户端提供更好的响应。请求头中信息的格式为key:value。
    c.请求体:客户端传递给服务器的数据。比如:表单使用post方式提交的数据、上传文件数据等
    请求方式:(更改请求方式:表单中添加属性:method=”post”。不更改默认就是get)
    GET:向指定的资源发出“显示”请求。
    GET请求中会将请求中传递的数据包含在URL中并在浏览器的地址栏中显示。
    GET请求传递数据时要求数据必须是ASCII字符。
    GET请求可以被浏览器缓存。
    POST:向指定资源提交数据,请求服务器进行处理(例如提交表单或者上传文件)。
    数据被包含在请求体中。
    POST请求传递数据时,数据可以是ASCII字符也可以是字节型数据,默认为字符型。
    POST请求默认情况下不会被浏览器所缓存。
    [6] GET和POST的区别(重要,面试常问):
    GET请求会被浏览器主动cache,而POST不会,除非手动设置。
    GET请求只能进行url编码,而POST支持多种编码方式。
    GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。dui
    GET请求在URL中传送的参数是有长度限制的,而POST则没有。对参数的数据类型GET只接受ASCII字符,
    POST既可是字符也可是字节。
    GET相比POST来说不安全,因为参数直接暴露在URL上,所以不能用来传递敏感信息。
    GET参数通过URL传递,POST放在Request body中。
    [7] HTTP协议的响应(掌握):
    Response消息也由三部分组成:
    第一部分叫Response line
    第二部分叫Response header
    第三部分叫Response body。
    a.和请求消息相比,响应消息多了一个“响应状态码”,它以“清晰明确”的语言告诉客户端本次请求的处理结果
    b.响应头用于告知浏览器当前响应中的详细信息,浏览器通过获取响应头中的信息可以知道应该如何处理响应结果。响应头中信息的格式为key:value。
    c.响应体就是响应的消息体,如果是纯数据就是返回纯数据,如果请求的是HTML页面,那么返回的就是HTML代码,如果是JS就是JS代码,如此之类。
    [8]常见状态码及含义:
    200 - 请求成功,已经正常处理完毕
    301 - 请求永久重定向,转移到其它URL
    302 - 请求临时重定向
    304 - 请求被重定向到客户端本地缓存
    400 - 客户端请求存在语法错误(客户端传递的数据类型不是后端想要的类型)
    401 - 客户端请求没有经过授权
    403 - 客户端的请求被服务器拒绝,一般为客户端没有访问权限
    404 - 资源未找到,客户端请求的URL在服务端不存在*

    405 – 请求方式不支持
    500 - 服务端出现异常
    ![4A}]IUN@PBF]@72JZKG``I.png