http基础知识

350 阅读4分钟

TCP/IP 通信传输流

应用层(http) ---> 传输层(tcp)---> 网络层(ip) ---> 链路层 (网络)

在传输层中为了准确的将数据送到目标处,TCP协议采用了三次握手的方式

TCP协议把数据包送出去之后,会去确认对方是否接收成功。判断方式以标注标志的形式,用TCP( flag )---SYN(synchronize) 和 ACK(acknowledgement)

第一次.发送端会传输一个带有SYN标志的数据包给接收端

第二次.接收成功回传一个带有SYN和ACK标志的数据包表示传输成功

第三次.发送端会回传一个带有ACK标志的数据包,代表“握手”结束

DNS域名解析

用户使用主机名和域名来访问另一台计算机,而不是直接通过IP地址来访问的

让计算机去理解可能不是由纯数字组成的地址会变得困难。为了解决这个问题,DNS协议提供通过域名查找到IP地址

URL和URI

URI的格式 http:// user:pass@www.example.jp:80/dir/index.htm?uid=1#ch1

( http:// ) :协议方案名

( user:pass ) : 登录信息(认证)---- 可选项

( www.example.jp ) : 服务器地址

( 80 ) : 服务器端口号

( /dir/index.htm ) : 文件路径

( uid=1 ) : 查询字符串 ---- 传递的参数

( ch1 ) : 片段标识符

HTTP协议

HTTP协议用于客户端与服务端之间的通信,通过请求和响应的交换达成的通信

持久连接节省通信量
HTTP协议的初始版本中,每进行一次HTTP通信就要断开一次TCP连接,这些年随着HTTP的普及,文档中包含大量图片的情况变得多了起来,因此每次的请求都会造成无谓的TCP连接建立和断开,增加了通信量的开销。 在HTTP/1.0中并未将所有连接默认都是持久连接,到HTTP/1.1内这项规则标准化。进而产生了管线化的请求方式,这样子就能同时发起多个请求,不需要一个一个地等待响应了

HTTP状态码

状态码类别原因短语
1xxInformational(信息性状态码)接收到的请求正在处理
2xxSuccess(成功状态码)请求正常处理完毕
3xxRedirection(重定向状态码)需要进行附加操作以完成请求
4xxClient Error(客户端错误状态码)服务器无法处理请求
5xxServer Error(服务器错误状态码)服务器处理请求出错

200:成功
302:重定向
404:请求失败,请求希望得到的资源违背在服务器发现。( 一般404都是你路径写错了 )
502:无效的响应(基本上就是Tomcat没启好)
400:请求没有进入到后台服务里(一般都是前端的锅)

http 与 https 的区别

http是超文本传输协议,信息是明文传输。https则是具有安全性的ssl加密传输协议
http默认80端口,https默认443端口。
HTTPS 协议需要到 CA (Certificate Authority,证书颁发机构)申请证书,一般免费证书较少,因而需要一定费用。

浏览器中输入一个url到页面展示中间经历了什么

1.输入url。先解析url地址是否合法  
2.检查是否有缓存(浏览器缓存-系统缓存-路由器缓存)。如果有,直接显示。如果没有,跳到第三步。  
3.在发送http请求前,需要域名解析(DNS解析),解析获取对应过的ip地址。  
4.浏览器向服务器发起tcp链接,与浏览器经历tcp三次握手  
5.握手成功后,浏览器向服务器发送http请求,请求数据包  
6.服务器收到处理的请求,将数据返回至浏览器  
7.客户端收到http响应。  
8.解析响应。如果响应可以缓存,则存入缓存  
9.发送请求获取嵌入在HTML中的资源(html,css,JavaScript,图片,音乐等),对于未知类型,会弹出对话框  
10.浏览器加载/渲染页面
11.打印绘制输出