IP地址与域名
- IP地址
- IP地址是网络中计算机的唯一标识,点分十进制构成
- IPV4和IPV6
- 域名
- Doman name
- 因为网络通信需要使用ip地址,但是ip地址不容易记忆,所以才有了更好记忆的域名
- 特殊域名:localhost
DNS及浏览器请求服务器的过程
-
浏览器—>输入网址—>本地DNS服务器查询ip—>远程DNS服务器—>建立TCP连接
-
本地DNS服务器是一个文件
Windows C:\windows\system32\drivers\etc\hosts
Ubantu /etc/hostHTTP协议概述
-
http协议:超文本传输协议,主要用来发布和传输html页面(网页)
-
http协议2部分构成
请求协议
响应协议
协议由协议项构成
协议项:1)协议名; 2)协议值
HTTP请求报文格式
- 请求报文格式
- 请求行:协议方式、资源路径、协议及版本\r\n
- 请求头:协议项 包括协议名:协议值\r\n
- 请求空行:请求空行的作用:分隔请求头和请求的主体
- 请求主体:浏览器要发送服务器的内容
get方式没有请求体,post方式才有请求体。
HTTP响应报文格式
HTTP响应报文:服务器向浏览器做出响应(反馈数据)时候的协议
内容:
- 响应行(状态行)
协议及版本 状态码 状态描述
状态码:
2** 一切正常
3等待下一步操作 302重定向
4 客户端错误
5** 服务器错误 - 响应头
协议项构成
协议名:协议值 - 响应空行
分隔响应头和相应主体 - 响应主体(响应数据)
服务器响应给客户端的数据
长连接和短连接
在HTTP/1.0协议中,默认使用的是短连接,也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接。如果客户端浏览器访问的某个HTML或其他类型的Web页中包含其他的Web资源,就会建立一个HTTP会话。
在HTTP/1.1协议中,默认使用长连接,用以保持连接特性,使用长连接的HTTP响应,会在响应头中加入这行代码:
connection:keep-alive
- 在真正读写操作之前,server与client之间必须建立一个连接;
- 当读写操作完成之后,双方不再需要这个连接时他们可以释放这个连接
- 连接的建立需要通过三次握手,释放需要四次挥手
因此,每个连接的建立都是需要资源消耗和时间消耗。
TCP长连接和短连接的优点和缺点
- 长连接可以省去较多的TCP建立和关闭的操作,节约时间。但是如果用户量太大容易造成服务器负载过高最终导致服务不可用;
- 短链接对于服务器来说实现起来较为简单,存在的连接都是有用的连接,不需要额外的控制手段,但是如果用户访问量过大,往往可能在很短时间内需要创建大量的连接,造成服务器响应速度过慢;
总结:
- 小的Web网站的http服务一般都用短连接,因为长连接对于服务器来说会消耗一定的资源来让套接字保持存活 -keep-alive
- 对于中大型Web网站,一般都是采用长连接,好处时响应用户请求的时间更短,用户体验更好,虽然更耗硬件资源,但是问题不大。另外,数据库的连接使用长连接,如果用短连接频繁的通信会造成socket错误。