2 个简单预备知识
https://www.baidu.com/ -域名-字符串-域名解析--ip地址
http请求和响应 格式画出来,两个工具见一见
https协议绑定端口号443
http协议绑定端口号 80
url 统一资源定位符 所有网络的资源都可以用唯一的一个字符串标识,并且可以获取到
少量的情况,提交获取的数据本身可能包含和url冲突的字符,要求bs双方进程编码和解码
http request 请求行 请求报头, 请求正文
以空格 隔开
区分请求报头和请求正文 有空行,从字节流来说就是'\r\n'间隔在报头和请求正文
请求报头和请求正文之间有空行,使得能够读取完整报头
报头有属性:Content-Length::XX x为请求正文的内容
http response 状态行
响应正文
第一行是状态行
HTTP/1.1 200 OK
HTTP Version 状态码 状态码描述 \r\n
携带版本因为在于服务器和客户端不是同一个版本号的,便于提供不同服务
200是状态码 200表述可信,200后面是状态标识
哪怕请求是失败的也要有响应
写一个简单httpserver
user-agent表示访问的设备
协议是对二进制或者字符串进行处理
get方法获取资源,如网页的
数据都是通过表单来提交的
如果通过get方法提交,提交的参数 是通过url 提交的,服务器通过解析url决定返回什么资源
post方法是正文参数提交,参数数量受限,不私密
404如访问资源不存在
状态码是http协议确定的
永久重定向:访问A后跳转到B,下一次直接访问B,老网站跳转到新网站
临时重定向:访问A后跳转到B,每次都访问A,登录页面跳转到特定页面
重定向指导浏览器访问新的地址
一次请求响应一个资源,关闭连接,短连接 http1.0
长连接 http1.1
建立一个TCP连接,发送和返回多个http的request和response
如一个网站有100资源(图片)等短连接建立100个连接,发送一百个请求,长连接建立1个连接,发送100个请求
Connect:keep-live:支持长连接
一个网页有很多个资源,多个资源申请连接
http协议是默认是无状态,第一次第二次分别独立,如果看视频要登录一次,看下一个视频要再登录一次
set-cookie可以有很多个字段,保存数据在cookie文件,浏览器每一次请求都会携带cookie字段,用户名和密码,网站会根据cookie文件读取数据,如账号密码
内存级:保存cookie文件在内存中。
文件级:保存cookie文件在磁盘中。