HTTP协议
HTTP(超文本传输协议)协议:
指计算机之间进行网络通信时所遵守规则,HTTP允许将超文本标记语言(HTML)的文档从Web服务器传输到客户端并通过浏览器进行解析
URL(网址)解析
schema : // host [ : port# ] / path / ... / [ ?query-string ]
schema :表示底层使用的协议(http、https、ftp(用于文件传输的协议))
host :表示服务器的IP地址或是域名
port# :表示服务器的端口号(默认端口号是80时可以省略,其他端口号需要标明)
path :表示需要访问资源的路径
query-string:发送至Web服务器的数据(用“?”与路径分隔,以键值对形式存在,数据间以“&”分隔。是GET提交数据的方式受URL长度限制(最大为2048个字节))
HTTP协议是一种无状态连接,即遵循HTTP协议的服务器无法区分请求的来源,每个请求都是独立无任何关联(该机制导致相同客户端的连续请求,服务器将其视为一个连贯的操作,需引入Cookie解决)
浏览器加载网页的流程:
1、在浏览器输入URL后,浏览器会发送以request(请求)获取URL的html文件,此时服务器则根据需求response(响应)回传html文件给浏览器;
2、浏览器解析html文件后,发现文件中的引用文件(如图片、css、js),则再次发送对应引用文件的request(请求),服务器则根据请求逐一response(响应);
3、当完成所有请求和响应后,网页才能加载出来(过程中涉及多次请求和响应);
GET 和POST方法区别
Get方法
1、用于获取、查询信息;
2、提交的数据会显示在URL之后,可以直接观察安全低;
3、可以被缓存;
4、数据长度受限最大2048byte;
5、只能以ASCII字符传输;
Post方法
1、用于更新资源信息;
2、提交的数据存入http包下的body中,无法直接观差安全高;
3、无法被缓存;
4、数据长度无限制;
5、无限制字符传输,可使用二进制;
状态码:
http协议定义了五类状态码,都是三位数,百位数定义响应类型
1XX:表示请求已接收,继续处理
2XX:表示完成请求并响应
3XX:表示需要进一步处理才能完成请求
4XX:请求错误或请求无法实现(客户端错误)
5XX:表示服务器无法实现合法的请求(服务器错误)