网络原理之Http(1)
1.Http原理
1.1理解为何要有应用层?
-
HTTP协议格式本身,HTTP数据中包括自己的数据格式,网络数据传输都需要相同的协议。
-
协议是数据格式的约定
-
HTTP的目标:对于HTTP协议来说,就是学习里面的协议格式,结合理论实操,进行程序的调试
1.2认识URL
-
URL是全路径
-
URI包含了URL的全路径和相对路径
-
域名:基于DNS解析为IP
-
IP:网络中定义主机的地址(逻辑地址)
-
PORT:端口号,定位某个主机中唯一的进程(应用程序)
-
注:输入域名直接访问,其实是访问这个路径的资源,浏览器中不输入端口号,是因为HTTP协议默认端口是80
1.3urlencode和urldecode
像"/" “?” ":"等这样的字符,已经被url当做特殊含义理解了,因此这些字符不能随意出现,若某个参数中需要带有这些特殊字符,就必须对特殊字符进行转义。
转义规则为:将需要转码的字符转为16进制,然后从右到左,取4位(不足4位直接处理),每两位做一位,前面加上%,编码为%XY格式
例:"+“被转义为”%2B"
urldecode是urlencode的逆过程
1.4HTTP协议格式
HTTP请求:
通过Fiddler Everywhere对网页访问进行抓包,Raw为显示原始http格式,请求响应报文显示在右侧两个窗口。
HTTP响应:
常用的http工具:
抓包工具:Fiddler Everywhere ,charles,浏览器自带的开发者工具
http请求模拟工具:postman
HTTP的方法:
get: 获取资源(支持的HTTP协议版本:1.0,1.1)
post: 传输实体主体
put: 传输文件
head: 获得报文首部
get和post请求方法的区别:
-
get的请求数据只能放在URL中,post数据可以放在URL和请求体。
-
URL长度有限制,所以get方法请求数据不能太多,URL只能传输ASC码字符。
-
从安全性讲,post可以存放请求数据在请求体,相对安全。
HTTP状态码
-
1XX:(信息性状态码)接收的请求正在处理
-
2XX: (成功状态码)请求正常处理完毕
-
3XX:(重定向状态码)需要进行附加操作完成请求
-
4XX:(客户端错误状态码)服务器无法处理请求
-
5XX:(服务器错误状态码)服务器处理请求出错
其中,4XX表示服务器无法处理请求即客户端请求错误,包括http协议格式请求数据的格式,数据类型等;5XX指服务器内部问题。
HTTP常见Header
-
Content-Type :数据类型(text/html等),为消息体的格式,告诉对方该使用什么方式解析
-
Content-Length: Body的长度
-
User-Agent:声明用户的操作和浏览器版本信息
-
referer:当前页面是从哪个页面跳转过来的
-
location:搭配3XX码进行使用,告诉客户端接下来要去哪里访问
-
Cookie:用于在客户端存储少量信息,通常用于实现会话(session)的功能
如何启动tomcat:
-
cmd用此命令检查本机8080端口是否被占用
netstat -ano | findstr 8080
-
cmd运行此命令检查JAVA_HOME环境变量:
"%JAVA_HOME%/bin/java" -version
-
双击tomcat目录下的bin/startup.bat文件,启动tomcat服务器(web服务器)
-
启动后,若进入浏览器可以打开localhost:8080网页,则说明启动成功
tomcat的简单使用
-
-
|—bin
|—startup.bat/shutdown.bat(启动,关闭的脚 本)
|—webapps 部署的路径(例如房屋要提供招租的服务)
|—项目(租户的名称)
2.简单的前端开发介绍
前端三剑客:
-
html:前端展示控件(页面内容)的资源文件
-
Javascript:前端的脚本语言,写代码完成功能
-
css:前端样式文件
2,3可以是单独资源文件,也可以在html里面直接写