http分为两个部分,请求报文还有响应报文
请求报文:包括起始行,请求头,空行,请求数据
响应报文:http状态码,响应头,响应主体
接下来一个个分析:
首先是请求报文:
请求报文请求行:请求方法:GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT,下面就列举我用过的几种进行说明:
get:向特定的资源发送请求,传递的参数(数据)被称为查询字符串参数,直接表示在地址栏(URL)中。传递参数长度会受到客户端的限制,也不适合传递私密的数据,因为请求的数据直接暴露在URL参数中。
Post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件),post方法把传递的数据封装在http请求主体中,所以请求数据不会在URL中显示,对数据长度也没有限制。
Delete:删除某一个资源
Put:向指定资源位置上传其最新内容,可以修改服务器的资源
Get与post的区别总结:
post更安全
Post可以发送给大的数据
Post可以发送更多的数据类型
Get比post快
Post用于修改和写入数据,get一般用于搜索和筛选之类的操作
Url:统一资源定位,根据这个地址就能找到相对应的资源
Url组成:一个完整的URL包括 协议+域名+端口号+请求资源路径名称+传参信息+HASH值
协议:例如http:// 或者 https://或者 ftp://等等
域名:例如www.baidu.com
端口号:区分一台服务器上的不同项目,端口号的取值范围0-65535 ,http端口号:80 https端口号:443 ftp端口号21
请求资源的路径的名称,如/xx/index.html
传参信息:用于客户端与服务端的通信,页面与页面之间的通信
HASH值:可以实现基于HASA的路由管控,也就是根据不同的HASH值,展示不同的组件和模块
协议版本号:
HTTP/1.0:HTTP/1.0支持:GET、POST、HEAD三种HTTP请求方法
2、HTTP/1.1
⑴HTTP/1.1是当前正在使用的版本。该版本默认采用持久连接,并能很好地配合代理服务器工作。还支持以管道方式同时发送多个请求,以便降低线路负载,提高传输速度
⑵HTTP/1.1新增了:OPTIONS、PUT、DELETE、TRACE、CONNECT五种HTTP请求方法
请求报文的请求头:请求头主要是由键值对组成,通知服务器有关于客户端请求的信息,请求头的内容包括:
请求报文的空行:最后一个请求头之后是一个空行,发送回车符和换行符,通知服务器以下不再有请求头
请求数据:请求数据不在GET方法中使用,而是在POST方法中使用。
响应报文:经过传输协议,服务器返回给客户端的内容
HTTP状态码:
1** | 信息,服务器收到请求,需要请求者继续执行操作 |
2** | 成功,操作被成功接收并处理 |
3** | 重定向,需要进一步的操作以完成请求 |
4** | 客户端错误,请求包含语法错误或无法完成请求 |
5** | 服务器错误,服务器在处理请求的过程中发生了错误 |
响应报头,用来说明客户端要使用的一些附加信息
响应主体,服务器返回给客户端的文本信息。空行后面的html部分为响应正文
http和https的区别:
http是80端口,https是443端口
htto是明文传输的,安全性不好
https是http+ssl 数据传输过程是加密的,安全性比较好
使用https协议需要到CA申请证书
http响应速度比https要快,主要是htttp使用tcp三次握手建立连接,客户端和服务器只需要交换三个包,而https除了三次握手
的三个包,还需要ssl握手的九个包,加起来就是十二个包
https比http要更加耗费服务器资源