计算机网络note_Web和HTTP

1、Web的一些概念

1.1、对象

  •  对象可以是HTML文件、JPG文件、Java小程序、音频、视频等

1.2、Web页

  •  Web页由一些对象组成,包含一个基本的HTML文件,这个HTML文件又包含一些对象的链接(引用);

        Web应用程序

  •  Web应用程序,只需浏览器就可以访问的应用程序;

1.3、URL通用资源定位符

通过URL对对象进行引用,格式:协议、用户口令、主机名、路径名、端口等;


2、HTTP(超文本传输协议)的概念

  • 属于Web的应用层协议;
  • 客户端请求、接收、显示Web对象的浏览器;
  • 服务器响应、发送Web对象;

3、HTTP使用TCP连接

  • 客户端发起与服务器的TCP连接,端口号为80;
  • 服务器接受客户端的TCP连接;
  • 在HTTP客户端(浏览器)与Web服务器之间交换HTTP报文;
  • TCP连接断开; 

4、HTTP非持久/持久连接

4.1、非持久连接(HTTP1.0)

一次TCP连接只能传输一个对象

响应时间:RTT(TCP建立)+RTT(HTTP请求/响应)+ 对象传输时间

4.2、持久连接(HTTP1.1)

一次TCP连接可以传输多个对象

  • 非流水线方式:请求对象,得到响应,下一个请求.....
  • 流水线方式:不必等待响应结束,客户端遇到引用对象就立即请求;(默认方式)

5、HTTP请求报文

5.1、HTTP请求报文格式


  5.2、HTTP方法

HTTP 1.0命令HTTP 1.1命令
GET:获取web服务器数据

GET

POST:向web服务器提交数据POST
HEAD:只请求头部信息

HEAD

PUT:将对象上载到URL字段
DELETE:删除URL字段的对象

6、HTTP响应报文

6.1、HTTP响应报文格式


6.2、常见状态码

  • 200 OK:客户端请求成功
  • 301 Moved Permanently:请求的对象已被永久移除
  • 400 Bad Request:客户端请求有语法错误,不能被服务器所理解
  • 403 Forbidden:服务器收到请求,但是拒绝提供服务
  • 404 Not Found:服务器无法根据客户端的请求找到资源
  • 500 Internal Server Error:服务器发生不可预期的错误
  • 503 Server Unavailable:服务器当前不能处理客户端的请求,一段时间后可能恢复正常


7、Cookie

HTTP协议本身是一种无状态的协议,服务器并不能知道多次的客户端请求是否是同一个浏览器或用户发出来。

所以作为web服务器必须能够采用某种方式来唯一识别同一个用户,并记录该用户的状态

  • 服务器向客户端发送cookie
  • 浏览器将cookie保存
  • 之后每次http请求浏览器都会将cookie发送给服务器

8、Web缓存

Web缓存器(Web cache)也叫代理服务器(proxy server),它能够代表初始Web服务器来满足HTTP请求的网络实体。它有自己的ROM,并在ROM中保存最近请求过的对象的副本。可以配置用户浏览器以有限指向代理服务器,这样可以分散来自于客户的请求,使得服务器有更好的响应能力;同时还可以大大减少网络上的流量。用户向代理服务器请求对象过程如下:

  • 浏览器创建一个到代理服务器的连接,并发送HTTP请求报文请求一个对象。
  • 代理服务器进行检查,若在本地存储了对象副本则直接发送响应报文返回该对象。
  • 若在代理服务器中没有缓存该对象,它就向该对象初始服务器请求该对象。
  • 在原服务器中获取到对象后,代理服务器会在本地存储一个副本,然后向客户发送该副本。
     

​​​​​​​​​​​​​​

如何检查缓存内容是否最新:在HTTP请求中说明缓存的日期 If-modified-since:<data>

  • 如果缓存过期,HTTP报文返回服务器数据;HTTP/1.0 200 OK <data>
  • 如果缓存有效,直接从缓存中获取数据;HTTP/1.0 304 Not Modified

9、利用网络调试助手向百度发出HTTP请求

GET https://www.baidu.com/?tn=request_28_pg HTTP/1.1
Host:www.baidu.com
Connetion:close

(空行)

(空行)

close后面有两个回车换行,所以有两个空行,看上面的HTTP请求报文格式即知晓;

 

### 计算机网络大题示例 #### 题目一:域名系统的主要功能及其解析过程 描述并解释域名系统的(DNS)主要功能。假设要访问`www.snnu.edu.cn`,请详细叙述DNS迭代查询的域名解析过程。 对于给定的任务,当尝试访问特定网站时,如`www.snnu.edu.cn`,客户端设备首先向本地配置的DNS服务器发起请求。该DNS服务器随后执行一系列操作来定位目标主机的确切位置: 1. **根域查询**:初始阶段,DNS服务器联系最近可用的一个或多个根域名服务器询问顶级域名(TLD)信息; 2. **顶级域名(TLD)服务器查询**:收到响应后,继续与负责`.cn`这类国家代码顶级域名(CCTLDs)或其他通用顶级域名(gTLDs)的权威名称服务器沟通; 3. **授权域名服务器查询**:最后一步是从专门管理`snnu.edu.cn.`这一具体区域记录的授权名字服务器那里取得最终答案——即对应Web服务器的实际IP地址[^3]。 此流程确保每次互联网通信都能高效准确地找到目的地而无需记忆复杂的数字串形式的目标机器标识符(IP Address),从而极大地简化了用户的上网体验同时也提高了整个因特网架构的安全性稳定性。 ```python def dns_lookup(domain_name): """ Simulate DNS lookup process. Args: domain_name (str): Domain name to resolve. Returns: str: IP address of the resolved domain. """ root_servers = ["a.root-servers.net.", "b.root-servers.net."] # Simplified example # Step 1: Query Root Server for TLD information tld_info = query_root_server(root_servers, domain_name.split('.')[-1]) # Step 2: Query TLD server for authoritative nameserver info auth_nameserver = query_tld_server(tld_info, domain_name) # Step 3: Resolve final IP from authorized nameserver ip_address = get_ip_from_auth_nameserver(auth_nameserver, domain_name) return ip_address # Note: The above code is a simplified simulation and does not represent actual implementation details. ``` --- #### 题目二:子网划分计算实例 已知某台计算机拥有公网IPv4地址202.130.191.33/24,请问其所属的具体网络ID是什么? 解答此类题目需理解CIDR表示法中的斜杠后面跟随的是子网掩码长度,在本案例中为24位,则意味着前三个八位组构成了完整的网络部分,因此可得出结论如下所示: - 给定IP地址:202.130.191.33 - 子网掩码:255.255.255.0 (/24 notation) 由此可知,所求得的网络号应为前三段不变的最后一段全置零的结果,也就是202.130.191.0作为该计算机所在局域网内的唯一识别标志[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值