Web开发简介

前端

任何与用户直接交互的操作界面都可以理解为是一个前端,例如:电脑显示屏,手机/Ipad界面

Web服务的本质

1.客户端连接到Web服务端.

浏览器(本质就是一个客户端)与Web服务端的HTTP端口(默认80)建立一个套接字连接

2.发送HTTP请求

通过TCP套接字,浏览器向Web服务端发送一个文本的请求报文.请求报文中包含请求首行,请求头,空行和请求体四个部分

3.服务端接收请求

4.服务端返回响应

服务端将浏览器请求的数据(资源)复本写到TCP套接字,由浏览器获取,一个响应包含响应首行,响应头,空行和响应体四个部分

5.服务端把HMTL文件内容发送给浏览器

6.浏览器渲染页面


HTTP协议(HyperText Transfer Protocol)超文本传输协议

  • 用途:规定了浏览器与服务端之间数据传输的格式

  • 四大特性

    1. 基于请求响应(一次请求对应一次响应)

    2. 基于TCP/IP作用域应用层之上的协议

    3. 无状态(不保留客户端的状态)

    4. 无连接

  • 请求方式

    1. GET请求:向服务端发送获取数据(资源)请求。比如说在浏览器输入网址获取网页首页

    2. POST请求:向服务端发送提交数据请求。比如登录注册功能

  • 数据格式

    1. 请求格式

      ①请求首行(请求方式,协议版本)

      ②请求头(一大堆k, v 键值对的数据)

      ③空行,内容是/r/n

      ④请求体(客户端向服务器发送请求时,携带的数据,不一定有,有可能是空的,取决于首行的请求方式)

    2. 响应格式

      ①响应首行(响应状态码)

      ②响应头(一大堆k, v 键值对的数据)

      ③空行,内容是/r/n

      ④响应体(浏览器展示给用户看的数据)

    3. 响应状态码(用数字来表示一大堆提示信息)

      1XX:指示信息 --请求已被服务端接收,正在处理,可继续提交请求

      2XX:成功 --请求成功,服务端已返回了请求的数据

      3XX:重定向 --已完成当前请求,需更进一步操作.比如访问A时,A自动跳转到B

      4XX:客户端错误 --请求有语法错误或请求无法实现

      5XX:服务端错误 --服务端未能实现合法的请求

    常见的状态码:
    200 OK  --客户端请求成功
    400 Bad Request  --客户端请求有语法错误,不能被服务端解析
    403 Forbidden  --服务端收到请求,资源存在,但拒绝提供服务(可能是当前用户不具备请求该资源的条件)
    404 Not Found  --请求资源不存在(可能输入了错误的URL)
    500 Internal Server Error  --服务端发生了不可预期的错误(内部错误,与浏览器无关,比如服务端宕机、机房着火爆炸等)
    503 Server Unavailable  --服务端当前不能处理浏览器的请求,一段时间后可能会恢复
    
  • 请求方式

    GET 一般用于向服务端发送获取数据请求,比如在浏览器地址栏URL中输入www.baidu.com获取百度首页

    GET请求的参数大小受限,最大不超过1024KB,参数是用明文拼接再地址栏URL中,不太适合传递私密性的数据

    POST 一般用于表单数据的提交,比如网页版的登录注册功能,可传输大量数据

    GET和POST的区别:

    1.参数传递:GET请求参数拼接在地址栏URL后,POST的参数封装在请求体中

    2.数据长度:GET不超过1024KB,POST理论上没有限制,但浏览器本身有一个界限值

    3.安全性:GET相对POST而言,参数是明文,安全性和私密性不如POST

    4.本质:都是TCP连接,无实质性的区别,因HTTP/浏览器的限定,在应用过程中的体现不同


扩展知识

1.由于HTTP协议是状态连接,因此出现了cookie,session,token

2.除了无连接外,还有长连接,比如说websocket(类似于http协议的大补丁),可用于聊天室相关的开发

3.关于HTTP无连接特性容易产生的误区:

​ ① HTTP是无状态的面向连接的协议,无状态不代表HTTP不能保持TCP连接,HTTP使用的不是UDP协议(无连接)

​ ② 从HTTP 1.1起,默认都开启了Keep-Alive保持连接特性,也就是说,网页打开完成后,浏览器和服务端之间用于传输HTTP数据的TCP连接不会关闭,如果浏览器再次访问这个服务端的网页,会继续使用当前建立的连接

​ ③ Keep-Alive不会永久保持,可在不同的服务端软件(比如Apache)设定这个时间

4.URL(Uniform Resource Locator):统一资源定位符

包含了用于定位查找某个网络资源的路径,格式:

http://host[':'port][abs_path]
# http:表示通过http协议来定位网络资源
# host:表示合法的Internet主机域名或IP地址
# port:指定端口,如果缺省,默认是80端口
# abs_path:表示请求的资源的URL,如果什么都没写,浏览器会自动加上/,作为初始的路径地址

5.请求方式HEAD

HEAD跟GET差不多,但服务端接收到HEAD请求后,只返回响应头,不会发送响应内容.因此,如果我们只需要查看页面状态,使用HEAD就非常高效,因为省去了响应部分

6.XML也可编写前端页面,主要应用于odoo框架中,用于编写企业内部管理软件(ERP)

posted @ 2019-12-25 20:26  格桑_哈哈  阅读(532)  评论(0)    收藏  举报