2020/02/20 01-BS、Cookie、URL

在这里插入图片描述
后端就是服务器端跑的程序,服务器端跑的程序在前端不太一样,后端要跟各种内部服务打交道,对外暴露的只有80端口,443,一般需要dns帮忙,大网站都有很多太服务器提供服务

浏览器可以很好的展示html文件,客户端是client,服务端server,cs架构的编程,客户端都用TCP/UDP协议,选择其中一种,server应该解决所有客户端发过来的信息,比如群聊,客户端不需要考虑这个问题,cs更多是一种角色上的分配,这种编程的模式是client,server,角色来分。
一般都是TCP/UDP协议之上进行编程
TCP应该,bind,listenn,accept,来一个开一个socket,然后就可以receive和send了,不用的话socket回收,closed。
client客户端不需要绑定,用一个socket就可以进行通讯,如果阻塞是个问题,就可以用多线程
UDP,阻塞的,该多线程多线程,不需要listen,直接bind,无连接协议,不会开newsocket出来。
大家现在都围绕着服务器通信,这就是cs编程,网络编程都是这样的,需要注意怎么快 的处理大批量请求

在这里插入图片描述
这些浏览器通过http协议来访问server,提供这种服务的称为web server,往往通过http协议通信,而http协议基于tcp协议,在tcp协议上约定了一些通讯的信息格式,双方都能理解这种协议。
从7层往下,到网络4层,没有http只有tcp,默认80端口,所以本质上来讲就是socket编程,只不过在tcp之上,再发明一种消息约定好,就是http协议,是应用层的协议(tcp是按报文来的,一个字节一个字节的)
往往应用层的协议都是比较容易理解的

基于http协议通讯的有个名字叫浏览器browser
在这里插入图片描述
browser和server,叫bs编程
在这里插入图片描述
http通过url全球唯一定位,由它来发起对服务器的访问,tcp80端口默认,域名会解析拿到ip地址,要知道对方的地址和端口,server就是一个应用程序,一般server会返回html,head部分该加载加载,body部分绘制出来

BS开发也是基于TCP的,少不了服务端地址和IP。CS编程就是socket编程,或者基于一些框架的socket的编程。
BS编程用的很多,就会分,谁在B端,谁在C端编程,在客户端浏览器编程能用的技术就是html,css,js

s端就是web编程,底层需要基于socket编程,封装,把底层传来的http报文解析掉,得到数据后,知道对方请求什么,把对方的数据找到,把它通过http协议的报文,发回到浏览器端,这是server端要做的事情。

cs编程,一般是socket编程
BS,B端三样,服务器端技术就多了,ASP,JSP.,PHP

JS前后端都可以跑,网页i有JS,后端用nodejs来开发,一个网站能不能抗住高并发,是靠运维架构的,java和python都做不到。

python基于服务器端开发的,WSGI,Django做web开发现在最多,tornado异步框架,效率高,Flask小巧
在这里插入图片描述
在这里插入图片描述
nginx可以做4层代理,7层代理,比较强大
http是无状态的协议。
同一个客户端的两次请求之间没有任何关系,(一个浏览器对服务器访问两次,而且是连续两次请求,对服务器来讲它不知道,从服务器端来看一次请求就是一次请求,哪怕请求都是来自同一个IP地址,也不认为这两个请求有任何关系)
当初作者在欧洲原子能实验室搭建第一个网站,要让全球的人来看,性能比较差,就需要客户端发送一次请求后,服务器端把文件发送到客户端,就没有关系了,所以就要求在链接内,数据传输完,就断开,即使同一台机器隔一会发送请求,也会认为是全新的请求

在这里插入图片描述
**后来网景公司,想要让服务器端感觉这个客户端曾经来过,是在建立http基础上的,发明了cookie技术,就是一个键值对的形式来传递信息,是一种客户端和服务端传递数据的方式,cookie信息一般在服务器端生成。一般cookie信息都是由服务器端生成并把这个信息返回给客户端,但凡这个客户端或者浏览器再次发信息,会把这个cookie带回服务器端,这样cookie就传到了服务器端,只要信息没过期,都认。
cookie里的信息都是kv对,浏览器每次向服务器端发送请求都会带上cookie,最简单是通过域名来区分,访问百度总不能拿新浪的cookie吧,会把本网站 的cookie发送的本网站的server去,server端收到请求,会解析请求,发的请求里就由cookie信息,这就是无状态的链接变成一种有状态的信息传递过程。这样服务器端就知道上次请求和这次请求有什么关系了。
没有这项技术,所有的互联网动态网页就废了
**
cookie是客户端和服务器端传输数据用的,往往是由服务器端写回到浏览器端,浏览器端每次提交到服务器端,服务器端就会用里面的信息做判断
在这里插入图片描述
url全球统一资源定位符,所谓的host主机就是ip地址

在这里插入图片描述
anchor锚点,可以锚点到别的地址,也可以本页面的地址
在这里插入图片描述
这是一个uRL
在这里插入图片描述
scheme支持模式协议,ssl是openssl组织的,之前有个漏洞。地学漏洞
在这里插入图片描述
主机一般是域名后面加端口,默认80端口,对普通用户来讲根本不知道什么叫端口,域名解析需要使用DNS协议,基于UDP的,因为包很小。
大型网站,dns解析,绝对不止一个ip地址。域名解析通过dns协议找到服务器地址,再通过http协议访问地址和端口的webserver,最底层就是tcp通信,是从tcp找的地址和端口,然后建立链接,该发什么发什么

在这里插入图片描述
这里就是路径,是一个逻辑路径,看似绝对路径,也许真的有index.html,也可能是生成的。服务器需要通过IO找到index,read它然后一点点发到浏览器,浏览器开了socket receive,receive完了,该构建dom树就dom树,该渲染渲染,底层都是socket通信
在这里插入图片描述
这个东西一般不用
在这里插入图片描述
查询字符串很重要,也叫参数,?问号后都称为查询字符串,这种是从浏览器端向服务器端发的数据

在这里插入图片描述
在这里插入图片描述
锚点一般不用,是在静态页面里定位的,直接定位到当前大的html里的某一行
在这里插入图片描述
最关心的就是path,主机端口,和查询字符串
在这里插入图片描述
通过逻辑地址访问资源,找不到就是404
在这里插入图片描述
path和查询字符串必须知道
在这里插入图片描述![
BS开发是一种特殊的CS,都是基于socket编程,qq有客户端,有服务器就是传统的CS编程,一旦C可以解析成http协议,一般不习惯称为客户端,称为浏览器


服务端支持http,一般就是bs编程,底层就是CS编程
在这里插入图片描述
浏览器端的就是浏览器端编程,后端跑的就是服务器端编程

在这里插入图片描述
在这里插入图片描述
http协议无状态,cookie
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值