填入网址之后进行工作请求页面过程
1.浏览器通过DNS域名解析到服务IP(ping www.baidu.com)
ping www.baidu.com
2.客户端(浏览器)通过TCP协议建立到服务器的TCP连接 (三次握手)
3.客户端(浏览器)向web服务器端(HTTP服务器)发送HTTP协议包,请求服务器里的资源文档 (telnet 模拟)
4.服务器向客户端发送HTTP协议应答包
5.客户端和服务器断开(四次挥手),客户端开始解释处理HTML文档
数据提交的几种方式
1、form表单提交数据 但是他是全局刷新 action指定提交地址 method指定提交方式
2、ajax 局部刷新
请求方方法 GET POST 的区别 在http协议里实际上没有区别! 搞什么鬼?
常规理解: 1.GET 使用URL 或Cookie 传参,而POST将数据,放在BODY中。 ? NAME = ‘CST’&AGE=18
2.GET 的URL会有长度上的限制, POST可以传输很多数据。
3.POST比GET安全。 相对的安全 可以在请求主体中看到
4、get 多用于获取数据 post 传输数据
但其实HTTP协议里没有规定POST数据就要放在BODY里, 也没有要求GET数据就一定要放在URL中而不能放在BODY中。 HTTP协议对GET和POST 都没有对数据的长度进行限制,两方面原因造成数据限制的原因
1.早起浏览器会对URL长度进行限制(浏览器URL输入框)
2.浏览器会对Content-length进行限制,这是为了服务器安全和稳定。 安全问题呢,看你怎么想了,对于纯小白什么都是安全的,对于黑客什么都是不安全的
协议:http协议 https 协议
域名 端口 默认端口443 80端口
浏览器有一个很重要的概念——同源策略(Same-Origin Policy)。
所谓同源是指,域名,协议,端口相同。不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。
简单的来说,浏览器不允许包含在腾讯页面的脚本访问阿里巴巴页面的数据资源,会受到同源策略的限制
demo:本地访问百度资源
-----------
域名解析
域名是倒着解析的
.com 顶级域名
baidu.com (一)二级域名
zhidao.baidu.com (二)三级域名
www 二级域名前缀 表示万维网维护的
www.baidu.com 属于特殊的三级域名
zhidao.baidu.com 属于 百度自己维护的网络地址
--------------
常见域名及其分类
com org net 属于顶级域名,是在全世界范围内解析的,
cn hk 是在一个地区解析的, 如cn 中国
.com (商业机构);
.net(从事互联网服务的机构);
.org (非赢利性组织);
.com.cn (国内商业机构);
.net.cn (国内互联网机构);
.org.cn (国内非赢利性组织);
dns 先根据顶级域名判断网络范围在根据域名查找主机ip地址
前缀就不管了,理论上www开头相当于占位用的 在国外一般不写www 国内风气就是写www
注意啊 写不写www不同源
-----------------
举例来说,http://www.example.com/dir/page.html
协议是http://
域名是www.example.com
端口是80(默认端口可以省略)
-------------------
当你在浏览器里输入一个url发生了什么
1.浏览器通过DNS域名解析到服务IP(ping www.baidu.com)
2.客户端(浏览器)通过TCP协议建立到服务器的TCP连接 (三次握手)
3.客户端(浏览器)向web服务器端(HTTP服务器)发送HTTP协议包,请求服务器里的资源文档 (telnet 模拟)
4.服务器向客户端发送HTTP协议应答包 5.客户端和服务器断开(四次挥手),客户端开始解释处理HTML文档
-------------------------------
tcp协议 基于链接的传输控制协议
TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。
三次握手
1.先Client端发送连接、请求报文。
2.Server端接受连接后回复ACK报文,并为这次连接分配资源。
3.Client端接收到ACK报文后也向Server端发送ACK报文,并分配资源,这样TCP连接就建立了。
四次挥手
1.Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭(Socket),可以继续发送数据。
2.server发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续等我的消息"。 wait:这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。
3.当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。
4.Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!
(fin表示断开连接 ack表示响应)
udp 面向非链接的协议
“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。 UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
-------------------
应用层协议: http https等 (报文)
超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 上面的协议为了建立客户端与服务器端的连接,此协议为了让两者进行沟通。
为什么要有此协议呢,让计算机之间按照规矩说话,你问我答,你怎么问我怎么答,否则计算机各说各话,没办法沟通。 如何沟通呢? 让我们来了解一下http报文吧
http协议结构如下
http (请求报文,响应报文) 通过报文进行沟通
请求报文:
请求头
请求行
包括请求方法 请求资源url 请求协议
请求主体 会放置请求数据post方式
响应报文:
响应头
协议 + 版本号 状态码 及其描述
响应行
响应主体