1.0HTTP和APACHE-internet和http协议相关技术

1.0HTTP和APACHE-internet和http协议相关技术

internet因特网

1.1 internet因特网起源于美国五角大楼,前身是美国国防部高级研究计划局(ARPA)主持研制的ARPAnet## arpa在dns的反向解析上有过之后各个国家组织的网络都连进去,形成全球性的大网络互联网协议用TCP/IP协议,早期局域网没有用TCP/IP协议,现在都是TCP/IP协议http协议,早期用来传输文本标识语言(HTML)通过html来传输图片等,不只是文字1.2internet和中国1987年,钱天白(搞物理的),利用电话拨号连接国际互联网,给德国朋友发1990年钱天白注册顶级域名CN之后各个机构专线部分功能接入1994年用64K专线全功能接入跟国际互联网成为第77个成员1995年“瀛海威”提供普通家庭连接互联网的商业机构1996年中国互联网全国骨干网建成并正式开通####游戏软件不太玩1995年4月马云凑了两万,成立杭州海博网络公司,专门给企业做主页1997.5 丁磊创建网易1998.2 张朝阳创建搜狐1998.6.18刘强东在中关村创建京东公司,代理销售光磁产品1998.11 马化腾和张志东成立深圳腾讯激素那几系统有限公司,OICQ开通1998.12 新浪网成立,关键人物:王志东1999.5.18 中国第一家电子商务企业8848.com成立2000.1 李彦宏创建百度### 中国互联网连接世界八条光缆,4个登陆战允许入境

基于socket的主机网络通讯

这个知识应该在前面的tcpip协议上的补充,也是对osi七层模型的补充应用层和传输层之间的,socket抽象层1.1 socket是什么socket套接字(IP+端口)IP唯一的标识网络中的设备端口:唯一标识设备的某个应用程序socket是主机网路通信最基础的要求1.2 socekt API(库与应用程序的接口)Soceket Domain:根据用的地址AF_INET:IPV4AF_INET:IPV6AF_UNIX:同一主机上不同进程间的通信Socket Type:根据使用的传输层协议SOCK_STREAM:流,tcp套接字,可靠传递,面向连接SOCK_DGRAM:数据报,udp套接字,不可靠传递,无连接(用的很少)SOCK_RAM:裸套接字,无需tcp或udp,app直接通过ip包通信以后学python不会这么调用的,因为过于底层做软件开发man socket 有很多选项和接口如果用c写的话,要调用以后无论做c还是python开发,最终的都是调用socket1.3 套接字相关的系统调用(应用程序与os的-用户访问os内核是通过系统调用实现的)socket() 创建套接字 bind()绑定ip和端口 listen()监听 accept()接收请求 connect()请求建立连接 write()发送 read()接收 close()关闭连接  1.4 socket通信的python3实现vim tcpclient.py#!/bin/python3import socketHOST='10.0.0.52'# 要连接机器的地址PORT=9527# 要连接机器地址的端口BUFFER=4096sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)sock.connect((HOST,PORT))# 客户端不用绑定和监听,直接连即可sock.send(b'hello,tcpserver!I am tcpClient')# 打招呼recv=sock.recv(BUFFER)# 接收服务器端的消息print('[tcpServer said]:%s' %recv.decode())# 打印接收到的消息sock.close()# 客户端不是一个循环,执行一次就断开了# 测试:两台机器,一个当服务器端,一个当客户端# 这样就可以实现网络通讯# 如果服务器端不正常退出# ss -ntl查看不了# ss -ntla可以查看,会显示处于time-wait状态  tcp的11种状态之一# 等待一下即可,通常time-wait是30秒# 可以用tcp/udp测试工具测试# 以后软件开发,网络通讯,直接复制粘贴即可# python功能非常丰富,比shell的脚本强多了vim tcpsever.py#!/bin/python3# 调用python3的解码器import socket# 导入socket函数HOST='0.0.0.0'# 定义主机IPV4地址# 或者叫监听的端口# 0.0.0.0监听本机所有的ipPORT=9527# 定义主机端口号BUFFER=4096# 定义缓冲区大小sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)# 定义socket层,调用socket函数定义传输层和网络层协议# 传输层tcp,网络层IPV4sock.bind((HOST,PORT))# 绑定主机IP和端口sock.listen(3)# 监听主机ip和端口# 3表示监听队列print ('tcpServer listen at:%s:%s\n\r' %(HOST,PORT))# 定义,绑定,监听后提示信息while True:    # 死循环    client_sock,client_addr=sock.accept()    # 用socket接收远程用户连接    # 有两个返回值    # 客户端的传输层和网络层用什么协议,绑定的ip和端口是多少    # 所以这应该是个数组对象    print('%s:%s connect ' %client_addr)    while True:        # 死循环        recv=client_sock.recv(BUFFER)        # 利用socket和对方进行通讯        if not recv:            # 如果没有接收到任何数据            client_sock.close()            # 断开连接            break        print('[client %s:%s said]:%s' %(client_addr[0],client_addr[1],recv.decode()))  # 打印客户端ip和端口,以及接收到的信息        client_sock.send(b'tcpServer has received your message')        # 对客户端发一个回应sock.close()# 外层循环是不能结束的,然后的断开# 如果接收到accept的请求,会继续监听python3的缩进很严格# 执行,不能用bash执行# 要chmod +x tcpserver.py# ./ tcpserver.py# 之后就可以ss- ntl查看监听的端口

访问网站时候,背后发生了什么

 dns解析,把名字解析ip地址 和对方主机连接3次握手4次挥手 建立连接后就会发送http请求 通过http请求和对方传输数据 从对方的服务器获取返回的html信息(一般) 浏览器收到html页面后解释执行  从互联网上的得到的实际是一端html源码 从源码到页面的过程叫渲染 渲染过程:构建DOM树,构建CSSOM树,构建渲染树,合成绘制

http协议通信过程

1.1 历史发明人:蒂姆-伯纳斯-李 http是促进互联网发展的重要的协议 最早的互联网应用不是http协议,是吖db协议 http-超文本传输协议 早期就是传文本的,可以看到更多的效果,颜色或者图片等等 文本的太简陋了,可以显示出大小颜色效果,将网页显示的更生动好看  1984年 后期http标准由万维网协会推广 http版本最主流1.1版本 http通讯过程和socket传输差不多  1.2Http服务通信过程 获取ip和端口 创建套接字 连接到服务器IP:port上 1.3http协议分层 参考: https://juejin.cn/post/6844904097405992968 这个要加一层应用层http报文也就是切片的数据是http报文

Http相关技术和术语

1.1 WEB开发语言http:应用层协议-超文本传输协议 ,默认端口80/tcpWEB前端开发语言htmlcssjavascriptWEB后端开发语言并发量高的javago中小公司phppython1.2 html-Hyper Markup Language 超文本标记语言-负责实现页面的结构范例:<html><head><meta http-equiv=Content-Type content="text/html;charaset=utf-8"># 表示编码机制,属于text/html类型,字符集utf-8<title>HTML语言</title># 起了个标题,访问页面的时候的标签</head><img src="/d/know/2023030410/d2tfk4otg1z.webp"># 调用了百度首页log# 这是属于盗链行为<h1 style="colo:red">欢迎</h1># 欢迎,颜色红色<p><a href=http://www.baidu.com>百度</a>欢迎你</p># 这是个超链接</body></html># 创建出来,后缀html,这样可以由浏览器渲染打开可以识别html的代码格式,可以本地打开,也可以跨网络打开,用记事本就可以了,本质上就是个纯文本1.3 CSS-Cascading Style Sheet 层叠样式表,定义了如何显示(装扮)HTML元素,比如:字体大小,颜色属性等,通常保存在外部的.css文件种通过仅仅编辑一个简单的css文档,就可以同时改百年站点中所有页面的布局和外观范例:CSS# test.html<html><head><meta http-equiv=Content-Type content="text/html;charset=utf-8"><link rel="stylesheet" type="text/css" href="mystyle.css"/></head><body><h1>这是heading 1</h1><p>这是一段普通的段落,请注意,改段落的文本是红色的,在body选择器中定义了本页面的默认文本颜色。</p><p class="ex">该段落定义了 class="ex".该段落大的颜色是蓝色的</p></body></html># mystyle.cssbody {color:red}h1 {color:#00ff00}p.ex {color:rgb(0.0.255)}# 很多大网站的页面,模块化,共性的东西抽取出来,做成一个单独的文件# 以后所有的文件调用即可,不需要重复大的定义1.4 js-javascript,实现网页大的动画效果范例:JavaScript-和java没有任何关系# 雷锋和雷峰塔的关系<!DOCTYPE html><html><head><meta http-equiv=Content-Type content="text/html;charset=utf-8"></head><body><h2>我的第一段 javascript</h2><button type="button" onclick="document.getElementById('demo').innerHTML=Date()" >点击这里来先死日期和时间</button><p id="demo"></p></body></html># 还可以自动变-叫阿加特斯技术,前端要好好学# 也是生成html后缀总结:上面的三种语言都是前端工程师要掌握的,我们是运维工程师,不要求精通,至少要了解,只要知道三种大概有什么功能就可以了,如果以后要做网页开发就要懂了
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部