HTTP协议
目录
ip和端口号
在学习Javaweb内容之前我们要先明白两个概念,分别是ip地址和端口号。
ip地址:要想在网络中找到目标电脑,电脑必须有一个唯一的标识,这个就相当于我们每个人都有一个身份证号一样,而电脑的这种唯一标识就是ip地址,例如本地主机ip地址:127.0.0.1,很明显ip地址被三个小数点分为了四段,这个标准被称为ipv4,每一段的范围是0-255。应用客户端可以通过ip地址找到对应的服务器端。
端口号:我们知道在电脑或者手机上有很多的app,也就是应用程序,每个程序都有对应的功能服务,那么要想在电脑上找到对应的服务,就必须通过在这个电脑上的每一个开启服务的唯一标识就是端口号,例如:8080,端口号的范围0---65535,但是一般情况下大于5000的端口号都被系统占用,所以自己定义端口号要大于5000。
网址含义解析
学习javaWeb首先就要搞懂浏览器是怎样运行的,当你想访问一个网站的时候,你需要输入网址,你会发现网址的格式一般是这样的,http://www.baidu.com,我们来分析一下这个网址,开头http其实是一个网络协议,www.baidu.com是一个域名(网址),域名通过DNS服务器可以查询到对应的ip,域名的格式比ip更容易记住,更加有利于客户更加方便的访问到网站,同时也不会暴露服务器端的ip地址,有利于服务器的安全。其实真正完全的网路地址是这样的http://www.baidu.com:80/首页,80是一个端口默认情况下浏览器就是访问的80端口,首页是服务器默认响应的主页面。
URL和URI
URL(统一资源定位符):例如http://127.0.0.1:8080/Demo/index.jsp,协议名称://主机ip或域名:端口号+虚拟目录+文件名,由此看出URL其实就是通过浏览器访问网站的一种路径,看到这里你可能对虚拟目录感到疑惑,其实虚拟目录就是把服务器端的一小块区域的访问路径映射成其他简便的路径。
URI(统一资源标识符):例如/Demo/index.jsp,主机存放资源的位置虚拟目录+文件名,URI是资源在服务器上的标识。
http协议概述
HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP),即http协议是基于TCP/IP协议之上的应用层协议,基于 请求-响应 的模式。客户端发送一个请求(Request),服务器端就回应发送一个响应(Response).
HTTP是一种不保存状态,即无状态(stateless)协议。HTTP协议 自身不对请求和响应之间的通信状态进行保存。也就是说在HTTP这个 级别,协议对于发送过的请求或响应都不做持久化处理,就是说每次请求与响应都是独立的。
无连接格式:限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。
请求消息格式
请求中的user-Agent是浏览器的标识
消息格式
请求方法
http的请求方式一共有七种get、head、post、put、 delete、trave、options、connect。
通常我们常用的是get和post
get:提交的数据会放在URL之后,也就是请求行里面以?分割URL和传输数据,参数之间以&相连,如http://127.0.0.1:8080/Demo/index.jsp?name=zhnangsan&password=123456,因为浏览器对URL的长度有限制,所以get提交的数据大小有限制。
post:提交的数据放在请求体里,所以说post提交的数据外部是不可见的,这样数据就更安全,同时提交数据的大小也没有限制。
响应状态码
状态码是服务器端告诉客户端自己处理的状态。
状态码 | 响应类型 | 概述 |
1xx | 消息 | 请求已被接受,需要继续处理 |
2xx | 成功 | 请求已成功被服务器接收、理解、并接受 |
3xx | 重定向 | 需要客户端采取进一步的操作才能完成请求 |
4xx | 请求错误 | 客户端看起来可能发生了错误,妨碍了服务器的处理 |
5xx | 服务器错误 | 服务器在处理请求的过程中有错误或者异常状态发生 |