网络连接:HTTP信息传输(URI、URL)、TCP/IP连接过程、常见状态码
一.HTTP
request:请求行、请求头、请求正文(实体内容)
请求行:请求方式、url、协议版本
请求头:GET方式参数、...(其他属性)
实体内容:POST方式参数
response:状态行、响应头、响应正文(实体内容)
状态行:协议版本、状态码、状态描述
响应头:键值对方式描述
http://blog.****.net/a19881029/article/details/14002273
二.URL、URI
1.URI:统一资源标志符(Uniform Resource Identifier)
URL:统一资源定位符(uniform resource location)
2.URI包含RUI和URN
URL包含访问机制、网络位置:可作为网址直接在浏览器打开访问
URL和URI后台操作
http://blog.****.net/readiay/article/details/52862379
https://www.cnblogs.com/wuyun-blog/p/5706703.html
3.相关操作
http://blog.****.net/zghwai****/article/details/41345223java:
客户端访问路径(各段参数)、文件所在路径(classpath)、工程路径(包含服务器)
request.getScheme()+"://"; //请求协议 http 或 httpsrequest.getHeader("host"); // 请求服务器
request.getRequestURI(); // 工程名
request.getQueryString(); // 参数
类的绝对路径:Class.class.getClass().getResource("/").getPath():/D:/TEST/WebRoot/WEB-INF/classes/pack/
工程的路径:System.getProperty("user.dir"):D:\TEST
工程目录:request.getSession().getServletContext().getRealPath("") 参数可具体到包名。:E:\Tomcat\webapps\TEST
IE地址栏地址:request.getRequestURL():http://localhost:8080/TEST/test
相对地址:request.getRequestURI()
jsp:
jsp相关路径:相对、绝对
request.getRequestURI():/TEST/test.jsp
工程名:request.getContextPath():/TEST
request.getServletPath():/TEST/jsp/test.jsp
application.getRealPath("页面.jsp"):D:\resin\webapps\TEST\test.jsp
所在服务器的绝对路径:absPath=new java.io.File(application.getRealPath(request.getRequestURI())).getParent();:D:\resin\webapps\TEST
三.连接过程
1.http请求
HTTP是一个应用层的协议,在这个层的协议,是一种网络交互需要遵守的一种协议规范。
1、连接:建立一个socket连接,DNS解析为ip和端口。如果url不包含端口号,则会使用该协议的默认端口号80。
2、请求:GET/POST
3、应答
4、关闭连接
2.TCP连接的三次握手和四次挥手
建立连接协议(三次握手)
1、SYN_SEND:客户端发送SYN标志的TCP报文到服务器。
2、SYN_RECV:服务器端回应客户端,这个报文同时带ACK标志(表示服务器准备好了数据通信)和SYN标志。
内核在收到最后一个ACK后,accept会返回。
3、ESTABLISH:客户端必须再次回应服务器端一个ACK报文。
连接建立,开始准备read、write。
SYN:询问是否准备好连接
ACK:表示已准备好连接
连接中止协议(四次挥手)
TCP连接是全双工的,每个方向都必须单独进行关闭。一方完成它的数据发送任务,就能发送一个FIN来中止这个方向的连接。收到一个FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。
首先进行关闭的一方讲执行主动关闭,而另一方执行被动关闭。
1、TCP客户端发送一个FIN,用户关闭客户端到服务器的数据传送;
2、服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号;
3、服务器关闭客户端的连接,发送一个FIN给客户端;
4、客户端发回ACK报文确认,并将确认序号设置为收到序号加1;
1和2关闭客户端到服务器的数据通信,3和4关闭服务器端到客户端的数据通信
FIN:关闭连接
ASK:确认状态
http://blog.****.net/jinzhencs/article/details/50460611
https://www.cnblogs.com/engeng/articles/5959335.html
200:OK
404:资源不存在
500:服务器错误