HTTP HTTPS TCP UPD IP URL URI的一些概念,以及http请求的get和post方法
TCP/IP协议族按照层次由上到下可以分为大致几个层次:应用层、传输层、网络层、数据链路层
- 应用层:http ftp ssh等等
- 传输层:tcp udp等
- 网络层:ip ICMP RIP等
- 数据链路层:以太网 ppp等
HTTP:超文本传输协议,是一个应用层的协议,主要解决如何包装数据
TCP:主要解决数据如何在网路中传输
可以把IP想象成一种高速公路,它允许其它协议在上面行驶并找到到其它电脑的出口。TCP和UDP是高速公路上的“卡车”,它们携带的货物就是像HTTP,文件传输协议FTP这样的协议等。
~~
一个HTTP请求发送到服务端之前是要经过一系列的处理,最后才能到达服务端,大致的步骤是:
~~
- DNS服务进行域名解析,得到服务器的真实IP之后,就需要进行网络连接。http协议是构建在tcp/ip之上的
- 建立和服务器IP的Socket连接
- 根据HTTP协议规范构建HTTP消息头和消息体,并将之发送到服务端
- 接收到服务端返回的HTTP Response内容,并进行页面的渲染和展示
http和https的区别:
~~
https协议需要到CA申请证书。
tcp请求信息是明文传输;https 是具有安全性的ssl加密传输协议。
http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
http的连接是无状态性的;
HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全
tcp:传输控制协议,三次握手协议:
第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。
第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器进入SYN_RECV状态;ACK:确认字符(Acknowledgement)
第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。
tcp和udp(用户数据报协议)的区别:
tcp | udp |
---|---|
面向连接 | 面向非连接 |
传输可靠 | 传输不可靠,会丢包 |
适合传输大量数据 | 传输少量数据 |
传输速度慢 | 速度快 |
get和post请求方式
1 get请求的数据会附加在url之后,以?分割URL和传输数据,多个参数用&连接。 URL的编码格式采用的是 ASCII 编码。post请求会把请求的数据放置在http请求包的包体中 因此GET 请求的数据会暴露在地址栏中,而 POST 请求则不会
2 传输数据的大小:在 HTTP 规范中,没有对 URL 的长度和传输的数据大小进行限 制。但是在实际开发过程中,对于 GET,特定的浏览器和服务器对 URL 的长度有限 制。因此,在使用 GET 请求时,传输数据会受到 URL 长度的限制。对于 POST,由 于不是 URL 传值,理论上是不会受限制的,但是实际上各个服务器会规定对 POST 提交数据大小进行限制,Apache、IIS 都有各自的配置。
3 POST 的安全性比 GET 的高
URL(统一资源定位符)和URI(统一资源标识符)
URI标记了一个网络资源,仅此而已; URL标记了一个WWW互联网资源(用地址标记)
URI强调的是给资源标记命名,URL强调的是给资源定位,URL显然比URI包含信息更多