Web相关概念

本文介绍了Web技术的基础概念,包括软件架构、资源分类、网络通信三要素、Web服务器及HTTP协议等核心内容。深入探讨了静态资源与动态资源的区别,网络通信的基本原理,以及HTTP协议的工作机制。

一. 软件架构

1.Client/Server:客户端/服务器端

2.Browser/Server:浏览器/服务器端

  • 优点
    • 客户端使用统一的 Browser
    • 服务端基于统一的 HTTP

二. 资源分类

1.静态资源:每个用户访问相同的资源,得到的结果相同。被访问后可以直接返回,被浏览器解析。

  • HTML、CSS、JavaScript

2.动态资源:每个用户访问相同的资源,得到的结果可能不同。被访问后要先转换为静态资源再返回。

  • Servlet / JSP、PHP、ASP

三. 网络通信三要素

1.IP(Internet Protocol):电子设备(计算机)在网络中的唯一标识。

2.端口(port):应用程序在计算机中的唯一标识。取值范围:0~65535

3.传输层协议:规定了数据传输的规则。

  • TCP(Transmission Con trol Protocol,传输控制协议):面向连接,安全,三次握手 & 四次挥手,速度慢。
  • UDP(User Datagram Protocol,用户数据报协议):无连接,不安全,速度快。

四. Web Server

1.服务器:安装了服务器软件的计算机,性能(硬盘、内存、CPU)比较好。

2.服务器软件:接收用户请求,处理请求,做出响应。

3.Web 服务器软件:部署 Web 项目,让用户通过浏览器来访问,也称为 Web 容器。

4.常见的 Java 相关 Web 服务器软件

  • webLogic:Oracle,大型的 JavaEE 服务器,支持所有 JavaEE 规范,收费。
    • JavaEE:Java 语言在企业级开发中使用的技术规范的总和,一共规定了13项大的规范。
  • webSphere:IBM,同上。
  • JBOSS:JBOSS,同上。
  • Tomcat:Apache 基金组织,中小型 JavaEE 服务器,仅仅支持少量的JavaEE 规范,开源,免费。

五. HTTP 协议

1. 定义

1.HTTP:Hyper Text Transfer Protocol,超文本传输协议。

2.传输协议:定义了客户端和服务器端通信时发送数据的格式。

3.特点

  • 基于 TCP / IP 的高级协议
  • 默认端口号:80
  • 基于请求 / 响应模型,一次请求对应一次响应。
  • 无状态:每次请求之间相互独立,不能交互数据。

4.历史版本

  • 1.0:每一次请求响应都会建立新的连接
  • 1.1:复用连接

2. 请求消息数据格式

1.请求行

  • 格式
    请求方式 请求URL 请求协议/版本
    GET /login.html HTTP/1.1
  • 请求方式:HTTP 有7种请求方式,常用的有 GET、POST。
  • GET
    • 请求参数在请求行(URL 后)中
    • 请求的 URL 长度有限
    • 不安全(参数容易暴露)
  • POST
    • 请求参数在请求体中
    • 请求的 URL 长度无限
    • 相对安全

2.请求头:客户端浏览器传递给服务器的一些信息

  • 格式:请求头名称: 请求头值
  • 常见的请求头
    • User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:69.0) Gecko/20100101 Firefox/69.0,浏览器告诉服务器访问使用的浏览器版本信息。
    • Referer:http://localhost:8080/login.html,浏览器告诉服务器当前的请求从哪里来。
      • 作用:防盗链、统计工作

3.请求空行:分割 POST 请求的请求头与请求体

4.请求体(正文):封装 POST 请求的请求参数

5.字符串格式

POST /login.html HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.13; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 12
Connection: keep-alive
Referer: http://localhost:8080/login.html
Upgrade-Insecure-Requests: 1

username=hjplz

3. 响应消息数据格式

1.响应行

  • 格式
    响应协议/版本 状态码 状态码描述
    HTTP/1.1 200 OK
  • 状态码:服务器告诉客户端浏览器本次请求和响应的状态,由三位数字组成。
    • 1xx:服务器接收客户端消息,但没有完成接收,等待一段时间后发送。
    • 2xx:成功。e.g. 200
    • 3xx:重定向。e.g. 302(重定向)、304(访问缓存)
    • 4xx:客户端错误。e.g. 404(请求路径没有对应的资源)、405(请求方式没有对应的doXXX方法)
    • 5xx:服务器端错误。e.g. 500(服务器内部出现异常)

2.响应头

  • 格式:响应头名称: 响应头值
  • 常见的响应头
    • Content-Type:text/html;charset=UTF-8,服务器告诉客户端本次响应体数据格式和编码格式。
    • Content-dispostion:服务器告诉客户端以什么格式打开响应体数据。
      • in-line:默认值,在当前页面打开。
      • attachment;filename=xxx:以附件形式打开响应体,e.g. 文件下载

3.响应空行

4.响应体:传输的数据

5.字符串格式

HTTP/1.1 200 OK
Content-Type: text/html;charset=UTF-8
Content-Length: 101
Date: Tue, 24 Sep 2019 12:53:52 GMT

<html>
<head>
    <title>$Title$</title>
</head>
<body>
    Hello, response.
</body>
</html>
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值