Http中涉及到的知识点总结
1、URL地址
协议->
HTTP:超文本传输协议,除了用来传输文本,还可以传输HTML页面、CSS文件、JS文件、图片、音视频...
HTTPS:SSL,它比HTTP更加安全一些
FTP:文件传输的,我们买了个服务器,我们要把一些文件上传到服务器上,我们就需要使用FTP上传了
域名->
一级域名 www.qq.com
二级域名 sports.qq.com
三级域名 kbs.sports.qq.com
可以把我们每个部门的产品分不同的服务器进行管理,我们作为客户访问不同的域名其实找到的是不同的服务器->减少服务器的压力、有利于服务器的维护、有利于每个产品的SEO和权重...
端口号:0~65535
HTTP协议默认的端口号是80
HTTPS协议默认的端口号是443
->如果你的端口号是默认的值,我们在访问的时候端口号不需要添加
->如果你的端口号不是默认的值,访问的时候必须加
->为啥会出现端口号?因为一台服务器上可能会发多个产品,可能会有多个域名,用户通过域名进来了,但是具体找谁我们需要分清
具体的目录文件和URL后面的参数值
->?后面的都是传递给当前页面的参数值(问号传参),如果需要传递多个参数,中间中&隔开,#是当前页面的锚点定位
->https://www.baidu.com:80/user/index.html?name=aaa&age=17&sex=1#userName (#userName锚点定位,定位到当前页面中ID为userName这个标签的位置)
2、HTTP
->超文本传输协议:它能够把客户端要告诉给服务器端的东西带给服务器端,也可以把服务器给客户端的内容带给客户端,用它就可以实现客户端和服务器端的文件内容的传输
->事物:n+1个事件
->起始行/首部/主体
->起始行:描述这个HTTP的基本请求
->首部:通用首部(请求和响应都有的) 请求首部 响应首部 扩展首部(自定义的) 实体首部(描述响应/请求内容的)
->实体:一般很少见,请求或者响应的内容
[Headers]
General->通用头(Request/Response都有的)
Request URL:http://matchweb.sports.qq.com/kbs/hotMatchList?callback=getHotMatchList&_=1456903174906 请求的服务器详细地址
Request Method:GET 请求的方式,GET是到服务器获取内容,POST是向服务器发送内容...
Status Code:200 HTTP状态码 ok HTTP状态码描述
Remote Address:123.151.148.59:80 服务器的IP地址和端口号
Request Headers->
GET /kbs/hotMatchList?callback=getHotMatchList&_=1456903174906 HTTP/1.1
Host: matchweb.sports.qq.com
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
User-Agent: Mozilla/5.0...
Accept: */*
Referer: http://kbs.sports.qq.com/
Accept-Encoding: gzip, deflate, sdch
Accept-Language: zh-CN,zh;q=0.8
Cookie:
Response Headers->
HTTP/1.1 200 OK
Server: nginx/1.4.4-omg 当前服务器是用什么样的服务发布的(IIS、apache、nginx...)
Date: Wed, 02 Mar 2016 07:20:05 GMT 当前请求回来的服务器的时间,时间格式是英国的格林尼治时间
Content-Type: application/json 当前请求回来的数据的格式
Transfer-Encoding: chunked
Connection: keep-alive
Keep-Alive: timeout=120 当前是用了120ms请求回来的(整个HTTP的请求时间)
Vary: Accept-Encoding
X-Server-Ip: 10.248.116.169
X-Cached: EXPIRED
Content-Encoding: gzip
3、HTTP状态码
->100初始化/正在请求 HTTP2.0已经删除了1xx系列的
->200请求成功
->202接收
->301永久转移(一般是不同的服务器转移--降低了搜索引擎的权重 第一次检测做了永久的转移,第二次就不在进行搜索了)
->302临时转移(一般是相同的服务器临时转移)
注意:上述是Location地址之间的跳转
->303永久重定向 负载均衡
->307临时重定向
注意:上述是服务器之间的跳转
->304走缓存 (接收响应数据的时候走的是服务器缓存数据)
->响应首部:
->last-modified 最后一次改变的时间 GMT(英国格林尼治时间)
->e-tag 实体内容 一串通过校验内容进行sha(1/2)算法的字符串
->请求首部:
->if-modified-since GMT
->if-none-match 一串通过校验内容进行sha(1/2)算法的字符串
->400 参数错误
->403 禁止访问没权限
->404 没有找到
->417 发送资源文件过大
->500 未知服务器错误
->503 服务器并发数过多 (只能连接100个,过来200个,剩下的100个就会被告知503)
4、HTTP请求方式
->get 从服务器获取
->post 向服务器发送->注册页面:用户填完信息,有很多的信息,我们把这些信息都获取到,然后通过Ajax中的POST请求,在请求主体中把这些信息都传递给后台服务器,服务器把这些信息存储到数据库中("表单提交")
->put 增加
->delete 删除
->head、options、trace、connection、track...
->get系的特征(get、delete、head)
1、会把给服务器发送的数据放到url后面 ->http://matchweb.sports.qq.com/kbs/hotMatchList?callback=getHotMatchList&_=1456903174906 "?后面写的内容都是同过get请求传递给服务器的"
2、有大小限制
因为get系把数据都放到url里面,而浏览器会对url的长度有大小限制, 所以造成了get系对传输的数据大小有限制
ie->2K
firefox->7k
chrome->8k
3、会被缓存(服务器和浏览器自带的缓存)
->我们一般不用缓存,因为自带的缓存很多情况导致,第二次请求的内容一直和第一次一样,最新的内容请求不回来
->如果想要快,我们做的所有的缓存都是自己单独用程序设计出来的而不是浏览器自带的缓存机制
4、不安全,因为明文发送 ->在浏览器的控制台中我们可以查看到URL后面的参数值,所以不安全
->post系(post、put)
1、会把给服务器发送的数据放到请求主体里
2、不会有大小限制
因为post系把数据放到请求主体里,而请求主体是没有大小限制的
3、永远不会被缓存
4、相对于get系安全许多,因为不是明文发送
->为什么get系会被缓存而post系不会被缓存?
1、因为get系设计的初衷是用来从服务器拉取数据的。含有两个特点:
数据可能很大,数据可能会重复。正因为有这两个特点,所以造成了get系会被缓存
post系设计的初衷是往服务器发送数据的,所以不需要缓存
->HEAD、DELETE这两个方法比较特殊:他们成功只返回202,不会返回200
$.ajax({
type:'get',
url:'',
data:{name:''}, 向服务器端发送的数据
dataType:"json",
cache:false,是否可以缓存
async:true,同步
username:,用户名
password:,密码
timeout:,超时时间
headers:{},设置请求头
});
Http中涉及到的知识点总结的更多相关文章
- bootstrap实战练习中涉及的知识点(很有用哦!)
看的有关视频做的笔记,对bootstrap中涉及的知识点做了一定的解析,很有用哦!(新手上路,有不合适的地方可以指出哦!) 下面进入正题: Bootstrap是当下最流行的前端框架(界面工具集) 特点 ...
- dbms_job涉及到的知识点
用于安排和管理作业队列,通过使用作业,可以使ORACLE数据库定期执行特定的任务. 一.dbms_job涉及到的知识点1.创建job:variable jobno number;dbms_job.su ...
- iOS开发中关于UIImage的知识点总结
UIImage是iOS中层级比较高的一个用来加载和绘制图像的一个类,更底层的类还有 CGImage,以及iOS5.0以后新增加的CIImage.今天我们主要聊一聊UIImage的三个属性: image ...
- C#中易混淆的知识点
C#中易混淆的知识点 一.引言 今天在论坛中看到一位朋友提出这样的一个问题,问题大致(问题的链接为:http://social.msdn.microsoft.com/Forums/zh-CN/52e6 ...
- c/c++程序设计涉及的一些知识点
c/c++程序设计涉及的一些知识点 c中的printf函数 main(){ int b = 3; int arr[]= {6,7,8,9,10}; int * ptr = arr; *(ptr++) ...
- JAVA项目中常用的异常知识点总结
JAVA项目中常用的异常知识点总结 1. java.lang.nullpointerexception这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用 ...
- Hybrid App 应用开发中 9 个必备知识点复习(WebView / 调试 等)
前言 我们大前端团队内部 ?每周一练 的知识复习计划继续加油,本篇文章是 <Hybrid APP 混合应用专题> 主题的第二期和第三期的合集. 这一期共整理了 10 个问题,和相应的参考答 ...
- PHP开发中涉及到emoji表情的几种处理方法
最近几个月做微信开发比较多,存储微信昵称必不可少 可这万恶的微信支持emoji表情做昵称,这就有点蛋疼了 一般Mysql表设计时,都是用UTF8字符集的.把带有emoji的昵称字段往里面insert一 ...
- 开发过程中 的一些 补充知识点 + 关于mysql中的日期和时间函数?
参考: https://www.jb51.net/article/23966.htm https://yq.aliyun.com/articles/260389 mysql中的 日期格式是: HHHH ...
随机推荐
- linux shell 字符串操作详解 (长度,读取,替换,截取,连接,对比,删除,位置 )
在做shell批处理程序时候,经常会涉及到字符串相关操作.有很多命令语句,如:awk,sed都可以做字符串各种操作. 其实shell内置一系列操作符号,可以达到类似效果,大家知道,使用内部操作符会省略 ...
- Java RMI 框架
RMI(即Remote Method Invoke 远程方法调用).在Java中,只要一个类extends了java.rmi.Remote接口,即可成为存在于服务器端的远程对象,供客户端访问并提供一定 ...
- encode和decode
Python字符串的encode与decode研究心得乱码问题解决方法 为什么会报错“UnicodeEncodeError: 'ascii' codec can't encode characters ...
- MySQL下载安装、配置与使用(win7x64)
用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. 工具/原料 电脑 win7 6 ...
- hdu 1160 FatMouse's Speed 解题报告
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1160 题目意思:给出一堆老鼠,假设有 n 只(输入n条信息后Ctrl+Z).每只老鼠有对应的weigh ...
- [编解码] 关于base64编码的原理及实现
转载自: http://www.cnblogs.com/hongru/archive/2012/01/14/2321397.html [Base64]-base64的编码都是按字符串长度,以每3个8b ...
- Express4--说明
express4.*;(1) var app = express(): 生成一个express实例 app. (2) app.set('views', path.join(__dirname, 'vi ...
- pyinstaller--将py文件转化成exe
首先要注意一下:打包python文件成exe格式这个过程只能在windows环境下运行 1. 直接在命令行用pip安装 pyinstaller pip install pyinstaller</ ...
- java 学习之路
一.基础篇 1.1 JVM 1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收 http://www.jcp.org/en/jsr/detail?id=133 http://i ...
- windows休眠命令
windows休眠命令 rundll32 powrprof.dll,SetSuspendState windows关闭休眠功能命令:powercfg -h off 1 打开“控制面板”→“电源选项”, ...