JavaSE02_Day03(中)-创建Maven项目、了解HTTP协议

一、Maven项目

1.1 创建第一个Maven项目

方式一:File-->New-->Project./Other..,输入Maven进行查询,选择Maven Project

方式二:在左侧空白处右键,New-->Project/Other...,输入Maven进行查询,选择Maven Project

勾选Create a simple project(skip archetype selection)

输入Group Id(组织名称:公司域名反写)、Artfact Id(项目名:一般建议全部小写),其它默认

最终项目结构:

注意:如果项目的目录结构不正确,或者项目中的jar包下载不完整,可以更新当前项目,步骤如下:

  在maven项目上单击右键,选择Maven,再选择Update Project...

 

  选择要更新的项目强制更新

 

  解释:如果使用Eclipse工具下载jar包,添加jar包节点后会自动下载,下载不全时可以如上面操作进行更新下载。如果使用的是IDEA工具,当添加jar包节点后需要手动点击确认下载,否则不会下载,确认项在工作的右侧目录中有一个Maven的菜单,单击一下,然后弹出的菜单项上面会有一个刷新的按钮。

1.2 通过Maven工具下载jar包

假设目前项目业务中需要使用Junit单元测试jar包

1.打开浏览器,输入https://mvnrepository.com/网址(有时需要进行验证我是人类)

img

2.在当前网页的搜索框区域输入需要进行下载的jar包

(1)输入要查找的jar包,选择浏览量最多的点进去:此例为第二个最多

img

(2)选择浏览量最多的版本,注意白色底框的代表稳定版,粉色底框的代表测试版,最好选择稳定版,此处选择4.13.1

img

(3)点击进去复制Maven下的代码

img

3.把jar包代码添加到项目的pom.xml文件中并保存,需要手写添加一个dependencies节点

注意:pom.xml文件打开方式:

  方式一:拖动xml文件至右侧空白区域直接打开;

  方式二:在xml文件上右键,Open With,选择XML Editor或Text Editor,如果出现代码则直接在此页面编写代码;如果未出现,需要选择最下面的Source选项,进行选项框切换(Design--->Source)。

 <dependencies>
     <!-- https://mvnrepository.com/artifact/junit/junit -->
     <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
         <version>4.12</version>
         <scope>test</scope>
     </dependency>
 </dependencies>

4.查看项目中在Maven Dependencies目录下是否有下载好的jar包,如果有证明下载成功。

注意:当jar包没有加载完全或加载失败时可以重新加载,需要更新一下,此外要注意Package Presentation为Flat,否则可能显示不出来jar包里的内容。

注意:有关于项目下载jar包的使用会在后续课程中持续讲解。

 

二、HTTP协议(了解)

2.1 定义:

  HTTP协议 --- 超文本传输协议,是浏览器与服务器之间通讯的应用层协议。而HTTP协议要求底层的传输层协议为可靠传输协议,通常使用的就是TCP协议。

2.2 协议规定:

  规定客户端与服务端之间的通讯方式,以及数据格式等定义。其中,HTTP协议要求客户端与服务端发送的数据(不包含正文部分)需要符合的字符集为:ISO8859-1.这是一个欧洲编码集,其中不支持中文。所以我们在HTTP协议使用中客户端与服务端发送的数据都不会直接包含中文字符。

2.3 通讯方式规则:

  HTTP协议要求客户端与服务端的通讯为:一问一答的方式,即:客户端发起请求(request),服务端处理请求后予以响应(response).所以在HTTP协议中,服务端永远不会主动发送数据给客户端。

2.4 协议版本区别:

  HTTP1.0协议中,通讯为:客户端发起TCP与服务端建立连接,然后发送一个请求,当服务端处理该请求并予以响应后即断开TCP连接。

  HTTP1.1协议则改变为建立TCP连接后,可以进行多次请求与响应后再最终断开连接。对于现在的网络应用中,构建一个复杂页面需要客户端经历多次请求才能得到,对此HTTP1.1协议更高效并节约资源开销。

2.5 HTTP请求(Request)

  请求是客户端发送给服务端的内容。一个请求由三部分组成:请求行,消息头,消息正文

请求行:

  请求行是一行字符串,HTTP协议规定一行字符串的结束是以(CRLF)结尾

  • CR:回车符 ASC编码对应值:13 回到本行的首端

  • LF:换行符 ASC编码对应值:10 换到下一行的相同位置

  • 请求行内容分为三部分:

  Method         Url  Protocol(CRLF)

  请求方式  资源路径  协议版本

例如:  GET /index.html HTTP/1.1(CRLF)

消息头:

  消息头由若干行组成,是客户端发送给服务端的一些附加信息。有的是用来告知服务端当前客户端自身的信息(比如使用什么浏览器,我的操作系统是什么等),有的是用来维持通讯的一些处理操作信息等等。

  每一个消息头由一行组成,格式:name: value(CRLF)

注意: 消息头结束是以单独的CRLF表示,即:最后一个消息头发送完毕后,客户端会单独再发送一个CRLF表示消息头部分结束。

例如:

消息正文(不是必须的):

  一个请求中可以不含有消息正文。消息正文是二进制数据,是用户提交给服务端的数据。它可能是一个表单数据(用户在页面输入的注册信息等),也可能是附件等。

完整的请求内容

2.6 HTTP响应(Response)

  响应是服务端发送给客户端的内容,HTTP协议对响应也有格式上的定义。一个响应应当包含的内容有三部分:状态行,响应头,响应正文。

状态行:

  状态行也是一行字符串(以CRLF结尾),包含三部分信息:

  protocol  status_code  status_reason(CRLF)

  协议版本          状态代码              状态描述(CRLF)

  其中状态代码是由一个三位数组成,分为5类:

  1xx:保留

  2xx:成功,指服务端成功处理请求

  3xx:重定向,指服务端要求客户端再次发起请求到指定资源

  4xx:客户端错误

  5xx:服务端错误

常见:

  200:服务端成功处理并予以响应

  404:客户端请求错误

  500:服务端在处理请求时发生了错误。

  具体的状态代码的含义HTTP协议有明确规定用法:

  200 OK

  201 Created

  202 Accepted

  204 No Content

  301 Moved Permanently

  302 Moved Temporarily

  304 Not Modified

  400 Bad Request

  401 Unauthorized

  403 Forbidden

  404 Not Found

  500 Internal Server Error

  501 Not Implemented

  502 Bad Gateway

  503 Service Unavailable

例如: HTTP/1.1 200 OK(CRLF)

响应头:

  响应头的格式与请求中的消息头一致,一行为一个响应头信息,并且在所有响应头发送完毕后要单独发送一个CRLF表示响应头部分结束。响应头是服务端发送给客户端的一些附加信息。

响应正文:

  响应正文也是二进制数据,是服务端发送给客户端的数据,通常是客户端实际请求的资源(页面,图片等)。

  请求是否含有消息正文和响应是否包含响应正文的标志都是看头信息中是否包含两个头: Content-Type和Content-Length

  Content-Type:是用来说明正文的数据类型

  Content-Length:是用来说明正文的数据长度共多少字节

  一个响应内容大致如下:

    HTTP/1.1 200 OK(CRLF)

    Content-Type: text/html(CRLF)

    Content-Length: 245(CRLF)

    110101010101001010100101000111......

2.7 HTTP协议文献参考手册

  网址:http://doc.canglaoshi.org/

 

posted @ 2021-07-10 23:43  Coder_Cui  阅读(141)  评论(0编辑  收藏  举报