Web开发简介
前端
任何与用户直接交互的操作界面都可以理解为是一个前端,例如:电脑显示屏,手机/Ipad界面
Web服务的本质
1.客户端连接到Web服务端.
浏览器(本质就是一个客户端)与Web服务端的HTTP端口(默认80)建立一个套接字连接
2.发送HTTP请求
通过TCP套接字,浏览器向Web服务端发送一个文本的请求报文.请求报文中包含请求首行,请求头,空行和请求体四个部分
3.服务端接收请求
4.服务端返回响应
服务端将浏览器请求的数据(资源)复本写到TCP套接字,由浏览器获取,一个响应包含响应首行,响应头,空行和响应体四个部分
5.服务端把HMTL文件内容发送给浏览器
6.浏览器渲染页面
HTTP协议(HyperText Transfer Protocol)超文本传输协议
-
用途:规定了浏览器与服务端之间数据传输的格式
-
四大特性:
-
基于请求响应(一次请求对应一次响应)
-
基于TCP/IP作用域应用层之上的协议
-
无状态(不保留客户端的状态)
-
无连接
-
-
请求方式
-
GET请求:向服务端发送获取数据(资源)请求。比如说在浏览器输入网址获取网页首页
-
POST请求:向服务端发送提交数据请求。比如登录注册功能
-
-
数据格式
-
请求格式
①请求首行(请求方式,协议版本)
②请求头(一大堆k, v 键值对的数据)
③空行,内容是/r/n
④请求体(客户端向服务器发送请求时,携带的数据,不一定有,有可能是空的,取决于首行的请求方式)
-
响应格式
①响应首行(响应状态码)
②响应头(一大堆k, v 键值对的数据)
③空行,内容是/r/n
④响应体(浏览器展示给用户看的数据)
-
响应状态码(用数字来表示一大堆提示信息)
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)

浙公网安备 33010602011771号