一:HTTP
1.Http:(Hypertext Transfer Protocol) 超文本传输协议。是现在WWW应用最多的协议,目前的版本是1.1 Http 是应用层协议。
2.Http是一个基于请求/响应模式的,无状态的协议.
3.从浏览器输入一个网址,当一敲回车,浏览器就会将请求发送到服务器端。因为输入的是一个域名,会通过DNS解析成一个IP地址,然后通过路由找到远程主机。然后响应请求,发回到浏览器。
4.TCP是一个基于链接的协议,他能够提供两个计算机之间的可靠的数据流。HTTP,FTP,Telnet等应用都需要这种可靠的通信通道。
5.HTTP1.1版本中,给出了一个持续连接的机制,并将其作为1.1建立连接的缺省行为。
6.在HTTP1.0版本中,没有持续连接。访问一个包含许多图像的网页文件的整个过程包含了多次请求和响应,每次请求和响应都需要建立一个单独的连接,每次连接只是创建一个文档和图像。每次建立连接和关闭都是相对比较费时的。
在HTTP1.1版本中,有持续连接的功能。当建立一个连接时,依顺序建立多个请求,服务器端接收到之后,开始返回。当所有请求结束之后,连接关闭。
7.HTTP URL :URL:统一资源定位符(Uniform Resource Locator)
格式:http://host[:port] [abs_path]
http表示用http协议来定义网络资源。host表示合法的Internet主机域名或者IP名,port表示端口,默认是80;abs_path指定请求资源的URI(Uniform Resource Indentifier,统一资源标示符),通常浏览器帮我们完成了。
8.模拟访问网页
服务器端
ServerSocket server = new ServerSocket(80);
server.accept();
www.sohu.com + 80(浏览器自动加的) -->DNS(Domain Name Service)-->221.179.180.20:80
客户端:
Socket socket = new Socket("221.179.180.20",80);
9.HTTP的请求:客服端发送http请求向浏览器请求对资源的访问
http请求由三部分组成:请求行,消息报头,请求正文
请求行:Method Request-URI HTTP-Version CRLF
GET /test.html HTTP/1.1 (CRLF) .CRLF表示结束换行。
10.当我们通过浏览器的地址栏输入网址的方法去访问网页的时候,浏览器就是采用GET方法向服务器获取资源。
11.HTTP响应:由三部分组成:状态行,消息报头,响应正文
状态航: HTTP-Version Status-Code Reason-Phrase CRLF
HTTP/1.1 200 OK(CRLF)
12.Status-Code状态代码
-1xx:指示信息--表示已经接收,继续处理
-2xx:成功--表示请求已经被成功接收,理解,接受。
-3xx: 重定向--要完成请求必须进行进一步的操作
-4xx:客户端错误--请求有语法错误或者请求无法实现
-5xx:服务器端错误--服务器未能实现合法的请求
/***********************************************************************************************/
二:Telnet
1.http和telnet协议都是基于TCP协议
2.在cmd:telnet www.sina.com.cn 80
连接上之后,一会没有发送请求,就断开了。
发送请求:
/GET /index.html HTTP/1.1
Host:www.sohu.com
Connection:Keep-alive (close) 持续连接