您的位置:首页 > 理论基础 > 计算机网络

web 及计算机网络基础知识

2018-01-19 16:05 330 查看


JavaScript可以响应浏览器端的用户事件,检测表单的正确性,动态修改HTML页面结构DOM,因此可以减少与服务器端的通信开销,并且做出很酷的页面动态效果。


AJAX即“Asynchronous JavaScript and XML”(异步的JavaScript与XML技术),指的是一套综合了多项技术的浏览器端网页开发技术,可以基于JavaScript的XmlHttpRequest的用于创建交互性更强 的Web应用。AJAX是一种已有技术的mashup,多种技术组合在一起形成了其特色和优势。

Web应用中用户提交表单时就向Web服务器发送一个请求,服务器接收并处理传来的表单,并返回一个新的网页。而前后两个页面中的往往大部分HTML代码是一样的,每次都返回整个页面内容是一种带宽资源的浪费。而AJAX应用仅向服务器发送并取回必须的数据,并在客户端采用JavaScript处理来自服务器响应,更新页面的局部信息。

作者:Tufeng链接:https://www.jianshu.com/p/c7eff37f770b來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


简单概括一下,对于我们普通的网站访问,涉及到的技术就是:

1、用户操作浏览器访问,浏览器向服务器发出一个 HTTP 请求;

2、服务器接收到 HTTP 请求,Web Server 进行相应的初步处理,使用服务器脚本生成页面;

3、服务器脚本(利用Web Framework)调用本地和客户端传来的数据,生成页面;

4、Web Server 将生成的页面作为 HTTP 响应的 body,根据不同的处理结果生成 HTTP header,发回给客户端;

5、客户端(浏览器)接收到 HTTP 响应,通常第一个请求得到的 HTTP 响应的 body 里是 HTML 代码,于是对 HTML 代码开始解析;

6、解析过程中遇到引用的服务器上的资源(额外的 CSS、JS代码,图片、音视频,附件等),再向 Web Server 发送请求,Web Server 找到对应的文件,发送回来;

7、浏览器解析 HTML 包含的内容,用得到的 CSS 代码进行外观上的进一步渲染,JS 代码也可能会对外观进行一定的处理;

8、用户与页面交互(点击,悬停等等)时,JS 代码对此作出一定的反应,添加特效与动画;

9、交互的过程中可能需要向服务器索取或提交额外的数据(局部的刷新,类似微博的新消息通知),一般不是跳转就是通过 JS 代码(响应某个动作或者定时)向 Web Server 发送请求,Web Server 再用服务器脚本进行处理(生成资源or写入数据之类的),把资源返回给客户端,客户端用得到的资源来实现动态效果或其他改变。

作者:Tufeng链接:https://www.jianshu.com/p/c7eff37f770b來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
HTTP是建立在TCP/IP之上的应用协议,但并不是面向连接的,而是一种请求/应答(Request/Response)式协议。 
8.HTTP常用的方法类型包括:GET(请求一个网页)、POST(传送一个表单中的信息)、PUT(存入这个信息、类似于FTP中的PUT)和DELETE(删除这个信息)。 
9.URL、HTTP、HTML(以及XML)、Web服务器和Web浏览器是构成Web的五大要素。

作者:奔跑吧牛客
链接:https://www.nowcoder.com/discuss/1937
来源:牛客网


TCP三次握手和四次挥手的全过程

三次握手:

第一次握手:客户端发送syn包(syn=x)到服务器,并进入SYN_SEND状态,等待服务器确认;

第二次握手:服务器收到syn包,必须确认客户的SYN(ack=x+1),同时自己也发送一个SYN包(syn=y),即SYN+ACK包,此时服务器进入SYN_RECV状态;

第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=y+1),此包发送完毕,客户端和服务器进入ESTABLISHED状态,完成三次握手。

作者:奔跑吧牛客链接:https://www.nowcoder.com/discuss/1937来源:牛客网
在浏览器中输入www.baidu.com后执行的全部过程

1、客户端浏览器通过DNS解析到www.baidu.com的IP地址220.181.27.48,通过这个IP地址找到客户端到服务器的路径。客户端浏览器发起一个HTTP会话到220.161.27.48,然后通过TCP进行封装数据包,输入到网络层。

2、在客户端的传输层,把HTTP会话请求分成报文段,添加源和目的端口,如服务器使用80端口监听客户端的请求,客户端由系统随机选择一个端口如5000,与服务器进行交换,服务器把相应的请求返回给客户端的5000端口。然后使用IP层的IP地址查找目的端。

3、客户端的网络层不用关系应用层或者传输层的东西,主要做的是通过查找路由表确定如何到达服务器,期间可能经过多个路由器,这些都是由路由器来完成的工作,我不作过多的描述,无非就是通过查找路由表决定通过那个路径到达服务器。

4、客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定IP地址的MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的IP数据包现在就可以传输了,然后发送IP数据包到达服务器的地址。

TCP和UDP的区别?

TCP提供面向连接的、可靠的数据流传输,而UDP提供的是非面向连接的、不可靠的数据流传输。

TCP传输单位称为TCP报文段,UDP传输单位称为用户数据报。

TCP注重数据安全性,UDP数据传输快,因为不需要连接等待,少了许多操作,但是其安全性却一般

作者:奔跑吧牛客

链接:https://www.nowcoder.com/discuss/1937
来源:牛客网

面向连接和非面向连接的服务的特点是什么?

面向连接的服务,通信双方在进行通信之前,要先在双方建立起一个完整的可以彼此沟通的通道,在通信过程中,整个连接的情况一直可以被实时地监控和管理。

非面向连接的服务,不需要预先建立一个联络两个通信节点的连接,需要通信的时候,发送节点就可以往网络上发送信息,让信息自主地在网络上去传,一般在传输的过程中不再加以监控。



TCP/IP五层模型的协议

应用层 

传输层:四层交换机、也有工作在四层的路由器

网络层:路由器、三层交换机

数据链路层:网桥(现已很少使用)、以太网交换机(二层交换机)、网卡(其实网卡是一半工作在物理层、一半工作在数据链路层)

物理层:中继器、集线器、还有我们通常说的双绞线也工作在物理层


What happens when you type an URL in the browser and press enter?

The browser checks the cache for a DNS record to find the corresponding IP address 

 If the requested URL is not in the cache, ISP’s DNS server initiates a DNS query to find the IP address

Browser initiates a TCP connection with the server.
TCP/IP three-way handshake
 
The browser sends an HTTP request to the web server.
Once the TCP connection is established, it is time to start transferring data! The browser will
send a GET request asking 

The server handles the request and sends back a response.

The request handler is a program 

The server sends out an HTTP response.

. The browser displays the HTML content 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: