table表格的作用(功能)
- 展示数据 做数据展示
- 页面布局(div+css使用更多,是主流)
table->thead/tbody/tfoot/caption/colgroup->tr->th/td
tr是table的孙子,td是table的重孙
form表单的功能
- 数据提交
- 容易出bug的地方:checkbox的数据应该以数组的方式传递给后台(需要用js处理来传递给后台) 后台获取的变量名是唯一的,两级联动菜单(需要js配合)
前后台交互——HTTP
传输层
- tcp+ip
- tcp传啥格式类型文件都可以
应用层
- http协议
- 对传输的文件有格式要求
- 必须由前端发起请求数据,必须由后端响应一次
请求与响应
客户端 前端 请求------------->
<------------响应 服务端 后端
常见状态码 status code
1xx | Informational(信息性状态码),接受的请求正在处理 |
2xx | Success(成功状态码) ,请求正常处理完毕 |
3xx | Redirection(重定向),需要进行附加操作以完成请求 |
4xx | Client Error(客户端错误),客户端请求出错,服务器无法处理请求 |
5xx | Server Error(服务器错误),服务器请求出错 |
常见请求方法
GET-用于使用给定的URI从给定服务器中检索信息,即从指定的资源请求数据;使用GET方法的请求应该只是检索数据,并且不应对数据产生其他影响
查询字符串(名称/值对)是在GET请求的URL中发送的
-
GET 请求可被缓存
-
GET 请求保留在浏览器历史记录中
-
GET 请求可被收藏为书签
-
GET 请求不应在处理敏感数据时使用
-
GET 请求有长度限制
-
GET 请求只应当用于取回数据
请求行:GET http://127.0.0.1/index.html?k1=v1$k2=v2\r\n 请求头: HOST:127.0.0.1\r\n User-Agent:火狐\r\n Connect:keep-alive\r\n \r\n 请求体:null
-
请求行中,分割符 是?,所以文件取名的时候尽量少用特殊符号?
-
未来修改令牌 在请求头里修改(HTML CSS无法操作,JS可以操作)
-
请求头中是系统的key value
-
出现\r\n\r\n,表示请求行结束
-
请求体是null,因为方式是get,请求行第一行已经携带了数据
POST-用于将数据发送到服务器以创建或更新资源,它要求服务器确认请求中包含的内容作为URI区分的Web资源的另一个下属
查询字符串(名称/值对)是在POST请求的HTTP消息主体中发送的
-
POST 请求不会被缓存
-
POST 请求不会保留在浏览器历史记录中
-
POST 不能被收藏为书签
-
POST 请求对数据长度没有要求
POST请求 POST http://127.0.0.1/index.html\r\n HOST:127.0.0.1\r\n User-Agent:火狐\r\n Connect:keep-alive\r\n \r\n K1=v1&k2=v2
其他HTTP请求方法
方法 | 描述 |
---|---|
HEAD | 与GET相同,但只返回HTTP报头,不返回文档主体 |
PUT | 上传指定的URI提示 |
DELETE | 删除制定资源 |
OPTIONS | 返回服务器支持的HTTP方法 |
CONNECT | 把请求的连接转换到透明的TCP/IP通道 |
enctype,表单数据的内容类型
表单里的enctype属性属性规定在发送到服务器之前应该如何对表单数据进行编码
text/plain | 空格转换为"+",不对特殊字符编码 |
application/x-www-form-urlencoded | 在发送前对所有字符进行编码(将空格转换为 “+” 符号,特殊字符转换为 ASCII HEX 值 |
multipart/form-data | 大文件、数据流的方式 不对字符编码 |
HTTP的响应
HTTP响应:
响应行\r\n 协议版本 状态码 状态文字 \r\n
响应头\r\n
\r\n
碎碎念
代码需要良好的结构(使得响应代码时间少,提升用户体验)