Linux网络协议_HTTP
HTTP协议
- 00.什么是HTTP协议?
1.超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。
- 01.认识URL
a. 我们熟悉的网址,URL
b. 但是有些时候输入的url也会进行转译。比如’ + ’ ,’ \ ’ , ’ ?’ ,’ : ‘等。
- 02.HTTP报头
a. HTTP请求头
a. 首行:方法 + url + 版本号
b. header:键值对的形式,用" : "进行分割
c. body : header和body中间有空行,空行下面是body部分
b. HTTP响应头
a. 首行:版本号 + 状态码 + 状态描述符
b. header: 和上述类似,就是字段不一样,含义也不一样。
- 03.常见的HTTP方法
平时用的最多的就是GET和POST方法
- 04.HTTP报文头中header部分
请求头:
0. connection-type : 表示请求报头和服务器的连接方式,keep-alive就是长连接,否则就是短链接
1. content-length:当你有body部分的时候由于标识下面body的长度
2. Cache-Control:用来控制网页的缓存,后面再来详细说
3. host:表示请求报头域主要用于指定被请求资源的Internet主机和端口号,它通常从HTTP URL中提取出来的。
4. Upgrade-Insecure-Requests:如果此时浏览器访问的HTTPS网页,那么浏览器用这个字段来告诉服务器,我自己可以解决,你别管。
5. User-Agent:用来标识浏览器的信息,比如你是谷歌:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36(或者你是python爬虫就会标记程python)
6. Accept:表示浏览器接受的文件种类
7. Accept-Encoding:表示接受文件格式gzip, deflate, br
8. Accept-Language:表示接受的语言,也是用权重表示 zh-CN,zh;q=0.9
9. Cookie::这是服务器在浏览器端设置的标识,用来服务器区分不同的用户
响应头:
0. Cache-Control: private,后面细说
1. Connection: Keep-Alive,表示长连接,在一定时间后会释放连接
2. Content-Type: text/html;charset=utf-8,标识相应的文件类型和编码格式
3. Set-Cookie: 可以在响应中看到多个这样的字段,用于把cookie发送给浏览器,每写入一次cookie都是生成一个Set-Cookie
详解” Cache-control “字段
这个字段是用来控制网页缓存
1. 新建窗口
a. 值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。
b. 如果是max-age值,那么在此值内的时间里就不会重新访问服务器
2. 在地址栏回车
a. 值为private,则只有第一次访问服务器,以后都不会访问了
b. 值为no-cache,则每次都会访问服务器
c. 值为max-age,则在值期间内的时间内是不会重新访问的
- 05.常见状态码
最常见的就是 “404 NOT FOUND “
- 06.HTTP中GET和POST方法区别 -
a. GET请求将请求的数据放到URL地址中,POST请求放到了body中
b. GET请求最后一行是空行,一般没有body部分,而POST请求往往有body部分
c. GET因为没有body部分,所以header中没有content-length字段,POST请求有content-length字段,用来表示body的长度
d.因为对URL有限制,所有GET请求的数据有大小要求,POST用content-Length表示请求数据的长度,放入body,所以一般没有限制。
e.GET方式需要使用Request.QueryString来取得变量的值,而POST方式通过Request.Form来获取变量的值。
f.因为GET请求的把数据放在URL中所以GET可能会不安全(登陆)。
- 07.一些其他的问题
用谷歌浏览器在请求中经常会看到有favicon.ico,那么它是什么呢?
它其实是谷歌浏览器,自己会自动请求的,它是图标HTTPS和HTTP有什么关系?HTTPS是什么呢?
HTTPS其实就是HTTP协议的安全版本,它会将信息进行加密传输,然后在进行解密,
参考:
1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是超文本传输协议,信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。
如有错误,可以私信我,这里表示感谢!