1.http协议有哪些组成部分?

请求部分:请求行,请求头,请求体
响应部分:响应行,响应头,响应体

常用方法(全部大写):
GET请求获取Request-URI所标识的资源,例如:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源
POST 在Request-URI所标识的资源后附加新的数据,例如:要求被请求服务器接受附在请求后面的数据,常用于提交表单

常见状态码,状态描述:
image.png
200 OK //客户端请求成功
302 found 重定向
400 Bad Request //客户端请求有语法错误,不能被服务器所理解
401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用
403 Forbidden //服务器收到请求,但是拒绝提供服务
404 Not Found //请求资源不存在,eg:输入了错误的URL
500 Internal Server Error //服务器发生不可预期的错误
503 Server Unavailable //服务器当前不能处理客户端的请求,一段时间后可能恢复正常

2.Get和Post的区别?

Get请求方式:地址栏里会显示我们提交的数据(不安全),并且地址栏中支持提交少量数据,请求的数据存在请求行中
Post请求方式:地址栏里不显示我们提交的数据信息(相对安全),可以提交大量数据,请求的数据存在请求正文中

3.cookie和session的区别?

共同点:cookie和session都是用来跟踪浏览器用户身份的会话方式
区别:cookie数据保存在客户端,保存数据不安全且存储数据量有限;
session数据保存在服务器端,保存数据安全且存储数据量大,session是基于cookie进行信息处理的
二者的详细流程请访问:http://blog.csdn.net/axin66ok/article/details/6175522

4.什么是ajax,为什么要用ajax(浅谈你对ajax的认识),ajax的最大特点?

  1. Ajax是一种创建交互式网页应用的的网页开发技术;Asynchronous JavaScript and XML”的缩写<br />** Ajax的优势:**<br />1. 通过异步模式,提升了用户体验<br />2. 优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用<br />3. Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大用户量下的服务器负载。<br /> **Ajax的最大特点:**<br /> 可以实现局部刷新,在不更新整个页面的前提下维护数据,提升用户体验度。<br /> 注意:ajax在实际项目开发中使用率非常高(牢固掌握)<br /> 针对ajax的详细描述:http://www.jb51.net/article/93258.htm

5.Cookie和Session以及Servlet的生命周期

Cookie
cookie的生命周期是累计的,从创建时,就开始计时,20分钟后,cookie生命周期结束。
Session:
session的生命周期是间隔的,从创建时,开始计时如在20分钟,没有访问session,那么session生命周期被销毁
但是,如果在20分钟内(如在第19分钟时)访问过session,那么,将重新计算session的生命周期
注意:关机会造成session生命周期的结束,但是对cookie没有影响
Servlet:
init():在Servlet的生命周期中,仅执行一次init()方法。它是在服务器装入Servlet时执行的,负责初始化Servlet对象。可以配置服务器,以在启动服务器或客户机首次访问Servlet时装入Servlet。无论有多少客户机访问Servlet,都不会重复执行init()。
service():它是Servlet的核心,负责响应客户的请求。每当一个客户请求一个HttpServlet对象,该对象的Service()方法就要调用,而且传递给这个方法一个“请求”(ServletRequest)对象和一个“响应”(ServletResponse)对象作为参数。在HttpServlet中已存在Service()方法。默认的服务功能是调用与HTTP请求的方法相应的do功能。
destroy(): 仅执行一次,在服务器端停止且卸载Servlet时执行该方法。当Servlet对象退出生命周期时,负责释放占用的资源。一个Servlet在运行service()方法时可能会产生其他的线程,因此需要确认在调用destroy()方法时,这些线程已经终止或完成。
详细代码请看(封装)http://blog.csdn.net/qq_29542611/article/details/52426006

6.说下你熟悉的常用linux命令?

列出文件列表:ls 【参数 -a -l】
创建目录和移除目录:mkdir rmdir
用于显示文件后几行内容:tail
打包:tar -xvf
打包并压缩:tar -zcvf
查找字符串:grep
显示当前所在目录:pwd
创建空文件:touch
编辑器:vim vi
查看当前进程: ps
执行退出: exit
清屏: clear
退出当前命令: ctrl+c 彻底退出
执行睡眠 : ctrl+z 挂起当前进程 fg 恢复后台
文件权限修改: chmod
ln 创建链接文件
halt 关机
reboot 重启
:q 退出

:q! 强制退出

:wq 保存并退出
yyp 复制光标所在行,并粘贴
ifconfig 查看网络情况
ping 测试网络连通
netstat 显示网络状态信息
man 命令不会用了,找男人 如:man ls
kill 杀死进程,可以先用ps 或 top命令查看进程的id,然后再用kill命令杀死进程。
cp 拷贝
mv 移动或重命名
rm 删除文件
-r 递归删除,可删除子目录及文件
-f 强制删除
find 在文件系统中搜索某文件
wc 统计文本中行数、字数、字符数

Maven命令

https://blog.csdn.net/en_joker/article/details/84099070
(1)maven clean。
对项目进行清理,清理的过程中会删除删除target目录下编译的内容。
(2)maven compile。
编译项目源代码。
(3)maven test。
对项目的运行测试。
(4)maven packet。
可以打包后的文件存放到项目的 target 目录下,打包好的文件通常都是编译后生成的class文件。
(4)maven install。
在本地仓库生成仓库的安装包可以供其他项目引用,同时打包后的文件存放到项目的 target 目录下。
对项目打包有三种打包方式,pom打包,jar包和war包。打包方式在pom.xml文件中进行指定。

Maven常用命令:

https://blog.csdn.net/keda8997110/article/details/20925449
1. 创建Maven的普通java项目:
mvn archetype:create -DgroupId=packageName -DartifactId=projectName
2. 创建Maven的Web项目:
mvn archetype:create -DgroupId=packageName -DartifactId=webappName-DarchetypeArtifactId=maven-archetype-webapp
3. 编译源代码: mvn compile
4. 编译测试代码:mvn test-compile
5. 运行测试:mvn test
6. 产生site:mvn site
7. 打包:mvn package
8. 在本地Repository中安装jar:mvn install
9. 清除产生的项目:mvn clean
10. 生成eclipse项目:mvn eclipse:eclipse
11. 生成idea项目:mvn idea:idea
12. 组合使用goal命令,如只打包不测试:mvn -Dtest package
13. 编译测试的内容:mvn test-compile
14. 只打jar包: mvn jar:jar
15. 只测试而不编译,也不测试编译:mvn test -skipping compile -skipping test-compile
( -skipping 的灵活运用,当然也可以用于其他组合命令)
16. 清除eclipse的一些系统设置:mvn eclipse:clean

Git常用命令总结

https://www.jianshu.com/p/cdccfef91ae1

git讲解以及git命令大全

https://blog.csdn.net/qq_37840993/article/details/80965739
git是目前世界上最先进的分布式版本控制工具,他是林纳斯-托瓦兹开发的一款最初只能运行在linux上的代码管理工具,改工具的诞生也挺有意思的,具体git的前世今生大家可以去百度上看看,这里就不多说,反正就是最后慢慢的扩展到了windows上……j具体的我们就不多说,直接进入今天的主题……git命令大全…..电脑上还没有安装git的小伙伴可以去git官网:http://msysgit,github.io/下载,下载下来之后右击打开git bash就可以输入各种git命令了。。。。。下面就是git的基本上所能用到的命令(不断扩展,关注楼主即可。。。。)

git init 初始化(新建一个文件夹)将其目录切换至目录上,执行此命令,即可初始化该目录为git
git status 查看状态
git add filename 将filename 添加到git的暂存区
git commit 提交(不过一般提交不上去,因为需要填写提交的内容,这就是git的严谨之处 一般用下面的提交命令)
git commit -m “message” 提交,提交的信息为message
vi filename 修改filename文件
cat filename 查看filename内容
wq! 退出窗口
git log filename 查看日志
git log —pretty=online filename 查看filename日志,并且一行显示
git diff 查看对比两次文件内容具体修改了什么。
git diff HEAD — (“—”前后有空格),可以查看工作区和版本库里面最新版本的区别。
git reset —hard HEAD^ 回退一步
git reset —hard HEAD^^^ 回退三步
git reflog filename 查看详细的操作
git reset —hard 42e005 将版本回退到42e005时的版本
git reset —hard HEAD~3 回退3步
git chechout — 版本回撤
git rm -f filename 删除filename
git branch 查看分支
git branch dev 新建dev分支
git checkout dev 切换分支
git merge dev 将dev分支和当前分支合并
git branch -d dev 删除分支
git checkout -b test 新建test分支并切换
git remote add origin “http:,……” 远程添加
git push -u origin master 将本地的项目推送到master分支(第一次)
git push 将本地的项目推送到master分支
git pull origin master 从远程分支master上下载
git clone “http:,……” 克隆远程分支
ssh-keygen -t rsa -C “你git注册的邮箱” 生成ssh-key
以上是git的一些常用的命令:但是之前遇到了一个这样的问题 就是从远程拉取项目的时候,报 SSL certificate problem: self signed certificate的错误,最后查了一下说是在windows上出现的频率还是挺高的,我估计主要是git本身就是基于linux开发的,在windows上,容易缺失一些环境。参考了一些文章,解决了

linux查看日志命令

Intellij IDEA 最全实用快捷键整理(长期更新)

https://blog.csdn.net/weixin_42562514/article/details/85316005

IDEA常用快捷键大全

https://blog.csdn.net/weixin_42562514/article/details/85316005