网络基础学习

1、url(资源定位器)的构成

协议://域名(端口号、参数、查询等)

http://zhidao.baidu.com

协议:http / https (有加密的协议https)

域名: zhidao.baidu.com(百度知道)

端口: 80/ 90 / 3000等。

https默认的端口443;http默认端口80

例:https://www.baidu.com:443(默认端口443,可以不写)

2、同源策略:为了安全考虑的一种约定

浏览器有一个很重要的概念——同源策略(Same-Origin Policy)。所谓同源是指,域名,协议,端口相同。不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。必须满足协议、域名、端口都相同的情况下浏览器才同意拿数据。

简单的来说,浏览器不允许包含在腾讯页面的脚本访问阿里巴巴页面的数据资源,会受到同源策略的限制。

例如:

Index请求getNews.php的数据,浏览器会判断:协议相同(http)、域名相同(localhost),端口号(80)相同

http://localhost/lesson1/index.html

http://localhost/lesson1/getNews.php?

3DNS域名解析:域名是通过DNS服务器倒着解析的

.com 顶级域名

baidu.com (一级,按国际分类)二级域名 (按国家分类)

zhidao.baidu.com  (二)三级域名

www 二级域名前缀,表示万维网维护的

www.baidu.com,属于特殊的三级域名

zhidao.baidu.com ,属于 百度自己维护的网络地址

3.1 www拓展

最开始,Internet提供的主要服务有万维网(WWW)、文件传输(FTP)、电子邮件(E-mail)、远程登录(Telnet)等。也就是说,那个时候的www(World Wide Web)是标识这是一个需要你用浏览器来访问的网页服务,而不是需要你用telnet访问的bbs,或者ftp工具访问的文件传输服务。所以那个时候,网站主页的域名前面要用www。

baidu有多个服务区为他服务。不同的子域名对应处理不同服务的服务器。现在,把任务分配到多台服务器,不需要通过子域名来区分了。http://www.goole.com一个地址背后有多台服务器支持运作。还用www只是尊重用户习惯,方便用户看。国外其实已经不用写www了。

3.2顶级域名:分两类

按照国家分:.cn 中国,.gp日本, .hk香港

按照国际分:

.com (商业机构)

.net(从事互联网服务的机构)

.org (非赢利性组织)

.edu (教育机构)

.com.cn (国内商业机构)

.net.cn (国内互联网机构)

.org.cn (国内非赢利性组织)

4、端口:每个端口对应不同的服务

如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口可以有多个。浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80

5url请求详解

5.1 url请求简图

 

5.2 url请求流程

①浏览器通过DNS域名解析到服务IP(ping www.baidu.com)

②客户端(浏览器)通过TCP协议建立到服务器的TCP连接  (三次握手)

③客户端(浏览器)向web服务器端(HTTP服务器)发送HTTP协议包,请求服务器里的资源文档 (telnet 模拟)

④服务器向客户端发送HTTP协议应答包

⑤客户端和服务器断开(四次挥手),客户端开始解释处理HTML文档

5.2.1 三次握手,报文交换,TCP链接

①先Client端发送连接、请求报文。

②Server端接受连接后回复ACK报文,并为这次连接分配资源。

③Client端接收到ACK报文后也向Server端发送ACK报文,并分配资源,这样TCP连接就建立了。

 

5.2.2 四次挥手,关闭TCP链接

①Client端发起中断连接请求,也就是发送FIN报文。Server端接到FIN报文后,意思是说"我Client端没有数据要发给你了",但是如果你还有数据没有发送完成,则不必急着关闭(Socket),可以继续发送数据。

②server发送ACK,"告诉Client端,你的请求我收到了,但是我还没准备好,请继续等我的消息"。

wait:这个时候Client端就进入FIN_WAIT状态,继续等待Server端的FIN报文。

③当Server端确定数据已发送完成,则向Client端发送FIN报文,"告诉Client端,好了,我这边数据发完了,准备好关闭连接了"。

④Client端收到FIN报文后,"就知道可以关闭连接了,但是他还是不相信网络,怕Server端不知道要关闭,所以发送ACK后进入TIME_WAIT状态,如果Server端没有收到ACK则可以重传。“,Server端收到ACK后,"就知道可以断开连接了"。Client端等待了2MSL后依然没有收到回复,则证明Server端已正常关闭,那好,我Client端也可以关闭连接了。Ok,TCP连接就这样关闭了!

5.2.3  TCP/UDP协议

①面向连接的TCP:微信,先加好友,再聊天

TCP(Transmission Control Protocol,传输控制协议)是基于连接的协议,也就是说,在正式收发数据前,必须和对方建立可靠的连接。一个TCP连接必须要经过三次“对话”才能建立起来,其中的过程非常复杂,我们这里只做简单、形象的介绍,你只要做到能够理解这个过程即可。

②面向非连接的UDP协议:短信,知道号码就可以,实时语音

“面向非连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。

UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!

6、应用层协议: http https

超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。

HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。

上面的协议建立客户端与服务器端的连接,方便两者进行沟通。

为什么要有此协议呢,让计算机之间按照规矩说话,你问我答,你怎么问我怎么答,否则计算机各说各话,没办法沟通。

如何沟通呢?  让我们来了解一下http报文吧

7http (请求报文,响应报文)通过报文进行沟通

7.1 请求报文:请求头、请求行、请求主体

请求行: 请求方法(GET POST DELETE HEAD TRACE OPTION);请求资源 (URL) ;请求协议版本(HTTP/1.1)

请求头: http://tools.jb51.net/table/http_header

请求主体: 表单提交数据如:name=aimee&age=18;

 

7.2  响应报文:响应头、响应行 、响应主体

响应行:响应协议版本号(HTTP/1.1);响应状态码  (200);响应状态文(0K)http://tool.oschina.net/commons?type=5(响应状态码)

响应头:http://tools.jb51.net/table/http_header

响应主体:‘sign success’ (注册成功)

7.2.1 状态码

状态码

定义

说明

1xx

信息

接到请求继续处理

2xx

成功

成功的收到,理解,接受

3xx

重定向

为了完成请求需要进行另一部措施(如直接重浏览器缓存获取资源,或跳转到其他页面)

4xx

客户端错误

请求语法有错误,不能完全符合要求

5xx

服务器错误

服务器无法完成明显有效的请求

常见的http状态码

成功状态码:

200 服务器成功返回内容

301/2 临时/永久重定向

304 资源未被修改过

失败状态码:

404 请求内容不存在

500 服务器暂时不可用

503 服务器内部错误

8、请求方法  GETPOST 的区别?

在http协议里实际上没有区别!

①请求方式不一样,get,请求数据;post,推数据

②GET 使用URL 或Cookie 传参,而POST将数据,放在BODY中。 ? NAME = ‘CST’&AGE=18

③都有长度限制,post可以传输的数据比get多。get将数据拼接在url中,早期浏览器会对URL长度进行限制(浏览器URL输入框);post通过Content-Length限制了长度。

④POST比GET安全。GET在url中,直接就能看到,POST放在相应体里,通过控制台也可以看到,只能说相对安全。对于小白很安全,对于黑客,都不安全。

9、浏览器缓存机制

工作原理:是在HTTP Response中添加ETags信息。当客户端再次请求该资源时,将在HTTP Request中加入If-None-Match信息(ETags的值)。如果服务器验证资源的ETags没有改变(该资源没有改变),将返回一个304状态;否则,服务器将返回200状态,并返回该资源和新的ETags。

304:重定向

 

请求头中:

 

 if-None-Match: (匹配etag  如果它修改了 不取缓存)

 

If-Modified-Since:将先前服务器端发过来的最后修改时间戳发送回去

 

响应头中:

Etag;last-Modified (服务器最后修改的时间)和 etag 配合使用

Date: 服务器响应内容日期

Cache-control:内容缓存时间

no-cache   不被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。 

no-store 用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 根据缓存超时

max-age 指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。

min-fresh 指示客户机可以接收响应时间小于当前时间加上指定时间的响应。

max-stale 指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以 接收超出超时期指定值之内的响应消息。

Expires:内容保质期,表示存在时间,允许客户端在这个时间之前不去检查(发请求),等同max-age的效果。但是如果同时存在,则被cache-control的max-age覆盖。

网站如何统计用户从何点击而来

Referer中会记录当前网页从哪个网页跳转过来(比如百度搜索,搜狗搜索)

referer:如果从浏览器地址栏里直接输入地址请求头没有referer

 

转载于:https://www.cnblogs.com/wangzhenling/p/8799040.html

验证码接收平台搭建教程(含源代码) 在很多注册流程中,我们常常需要通过短信验证码验证用户的身份。本教程将手把手教你搭建一个验证码接收平台,用于自动接收并展示来自短信网关或短信转发器的验证码。⚠️ 本教程仅供学习使用,请勿用于任何非法用途!本教程展示了一个简单的验证码接收平台的搭建流程,从后端到前端完整实现。你可以将其用于学习 Web 开发、数据库操作以及 Flask 项目部署。访问我的CSDN主页。 阅读详情

相关推荐

AI Agent在核电站安全监控中的应用

核电站作为一种高效的能源生产设施,其安全问题一直是全球关注的焦点。任何安全事故都可能导致严重的人员伤亡、环境污染和经济损失。传统的核电站安全监控系统主要依赖于人工操作和固定规则的监控算法,存在监控效率低、无法实时应对复杂情况等问题。本文章的目的在于探讨如何利用AI Agent技术提升核电站安全监控的智能化水平,实现实时、准确的监测和智能决策。范围涵盖了AI Agent的基本原理、在核电站安全监控中的应用场景、相关算法和数学模型,以及实际项目的开发和应用。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 358

计算机网络基础知识(非常详细)从零基础入门到精通,看完这一篇就够了

TCP建链的⼤致过程如下:1)

Python_0011的博客 9467

kmre-2.0-6-arm64.rar安卓兼容层

银河麒麟 优麒麟 x86 麒麟移动运行环境 安卓兼容层 KMRE

网络基础入门

想学网络,无从下手?快来看这一篇

小白成长之路 1万+

计算机网络知识汇总(超详细整理)从零基础入门到精通,看完这一篇就够了

为了准备期末考试,同时也是为了之后复习方便,特对计算机网络的知识进行了整理。本篇内容大部分是来源于我们老师上课的ppt。而我根据自己的理解,将老师的PPT整理成博文的形式以便大家复习查阅,同时对于一些不是很清楚的地方,我去查阅了相关资料进行补充,当然也会有少部分个人看法夹带其中来帮助大家理解。应评论要求这里放上本文的思维导图以供大家更好的查看网络边缘:位于互联网边缘与互联网相连的计算机和其他设备,如桌面计算机、移动计算机、服务器、其他智能终端设备网络核心。

leah126的博客 4万+

网络入门基础必备知识(很详细),看这一篇就够了

🌟网络入门基础:从零开始的奇妙之旅🌟在这个信息爆炸的时代,网络已经成为了我们生活的一部分。无论是学习、工作还是娱乐,网络都在我们的身边发挥着重要的作用。但对于一些新手来说,网络入门可能会感到有些困惑。别担心!本文将为你揭开网络的神秘面纱,带你进入网络世界的大门。😊第一步:了解网络的基本概念😊在踏入网络世界之前,我们首先需要了解一些基本概念。网络,简单来说,就是将多台电脑连接在一起,形成一个可以相互通信和传输数据的系统。而互联网则是由许多网络组成的一个庞大网络,可以连接整个世界。

Python栈 2375

网络原理初识(基础)

一,网络的划分 1.局域网(LAN) 局域网的组建(连接方式) 2.广域网(WAN) 二,网络通信基础 1.IP地址 2.端口号(port) 3.五元组 4.子网掩码 5.MAC地址 6.一跳一跳的网络传输 三,协议 1.认识协议 2.协议分层 分层的作用 网络设备所在的分层 3.OSI七层模型 4.TCP/IP五层(四层)模型 四,封装和分用 1.封装 2.分用 ...

qq_54773998的博客 3207

网络基础知识学习

arp dhcp http连接 https连接 tcp连接 udp连接 ipv6学习 网络基础 未完待续……

weixin_37899184的博客 167

【J2EE核心开发学习笔记 003】网络基础

【J2EE核心开发学习笔记 003】网络基础

DaveBobo的博客 815

学习网络编程No.1【网络基础知识】

网络基础知识学习,物理层、数据传输过程理解、层状结构理解等

狂小伍的博客 2015

网络基础学习小结

OSI(Open Systems Interconnection,开放系统互连)是由国际标准化组织(ISO)制定的网络通信模型,它将网络通信过程分为7个层次,每个层次负责特定的功能,通过分层协作实现不同系统间的互联互通。ARP(Address Resolution Protocol,地址解析协议)是TCP/IP协议族中的一个重要协议,主要作用是将已知IP地址去获取目标MAC地址,以便在局域网内实现设备间的通信。优点是故障易排查(单个设备故障不影响整体),但中心节点故障会导致全网瘫痪,是目前主流结构。

2301_81322727的博客 360

Socket学习网络基础准备

本文详细介绍了Android Socket编程的基础知识与环境配置。主要内容包括网络通信模型(TCP/IP)、TCP与UDP协议的区别、Socket通信流程、网络地址与端口等基础知识。同时讲解了Android开发中的关键配置:权限声明、网络状态检查、HTTPS与SSL/TLS配置、推荐依赖库(如OkHttp、Netty)以及异步处理方案(线程、协程等)。最后提供了一个简单的TCP Socket客户端代码示例,展示如何建立连接并实现消息收发。这些内容为Android开发者实现实时网络通信提供了必要的基础知识和

likuoelie的博客 803

IP 网络基础学习笔记(01)

IP网络基础学习笔记摘要:本文系统梳理了IP网络基础知识,包括网络通信原理、地址体系(MAC/IP)、局域网与广域网的区别、路由转发机制、TCP/IP协议栈分层模型及常用网络测试命令。重点解析了MAC地址的厂商标识特性、IP地址的子网划分原理、交换机基于MAC表的转发机制与路由器基于IP的路由选择差异。通过学习OSI七层模型各层功能及TCP/UDP协议特性,帮助读者理解从物理连接到应用服务的完整网络通信过程。文章还提供了ping/tracert等实用网络诊断命令的使用示例,为网络初学者构建了清晰的知识框架。

m0_74283658的博客 1090

网络基础学习(华为)资源文件介绍

网络基础学习(华为)资源文件介绍 去发现同类优质开源项目:https://gitcode.com/ 欢迎来到网络基础学习(华为)资源文件的介绍页面!本资源文件旨在帮助您深入理解网络基础知识,特别针对华为的网络技术。 资源文件内容概述 通过学习本课程,您将能够: 了解数据通信的基本概念:掌握数据通信的基础理论,为深入学习网络技术打下坚实基础。 学习网络和Internet的基本知识:从整体上理解网络...

gitblog_06708的博客 335

【HCIA】总笔记

对等网-----变大----无限的传输距离 无冲突 单播 =网桥---交换机--工作于介质访问控制层----二层设备 认识MAC地址 ----认识则单播 不认识则泛洪 泛洪范围越大 延时越高 ----于是生产了一台设备----路由器---网络层---IP地址 ARP协议(广播) 广播域=泛洪区域。IPV4 :32位二进制构成,以点分十进制标识。节点增加设备-------HUB集线器 问题------安全 延时 地址 冲突。------DNS服务器。

2401_83874368的博客 1008

超实用的80个网络基础知识!(非常详细)零基础入门到精通,收藏这一篇就够了_常用网络基本知识有哪些

什么是计算机网络计算机网络是一种将多个计算机系统和设备连接在一起的技术,目的是为了共享资源和信息。网络使得设备之间可以进行数据传输和通信,常见的网络包括局域网(LAN)、广域网(WAN)和城域网(MAN)。网络的重要性计算机网络在现代社会中发挥着重要作用。它们不仅在企业中用于资源共享和通信,还支持互联网,使得全球信息交流和商业活动变得更加便捷高效。网络促进了远程办公、电子商务、社交媒体和云计算的发展,对各行各业都有深远影响。网络的基本功能资源共享。

喜欢Python编程的程序员柚柚呀 2676

超实用的80个网络基础知识!(非常详细)零基础入门到精通,收藏这一篇就够了

什么是计算机网络计算机网络是一种将多个计算机系统和设备连接在一起的技术,目的是为了共享资源和信息。网络使得设备之间可以进行数据传输和通信,常见的网络包括局域网(LAN)、广域网(WAN)和城域网(MAN)。网络的重要性计算机网络在现代社会中发挥着重要作用。它们不仅在企业中用于资源共享和通信,还支持互联网,使得全球信息交流和商业活动变得更加便捷高效。网络促进了远程办公、电子商务、社交媒体和云计算的发展,对各行各业都有深远影响。网络的基本功能资源共享。

Javachichi的博客 2万+

网络基础入门(网络基础概念详解)

本篇文章主要是对网络初学的概念进行解释,可以让你对网络有一个大概整体的认知。网络是指将多个计算机或设备通过通信线路、传输协议和网络设备连接起来,形成一个相互通信和共享资源的系统。网络互联:把多台计算机互相连接起来,进行互相传输数据,进而完成数据共享。没有网络之前的你:在没有网络的情况下,数据也可以传输。可以通过使用数据线将两台设备(如计算机、手机或存储设备)直接连接在一起,可以实现数据传输。或者通过使用磁带或光盘等媒介来进行数据传输。不过这样传输的成本比较高。什么是报头呢?在计算机网络通信中,

weixin_67596609的博客 6207
上一篇: 在UltraEdit中如何像NotePad++一样实现双击单词在全文中高亮
下一篇: js 面向对象代码
weixin_30823001
博客等级 码龄11年 122粉丝 2508原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值