HTTP协议是什么:
超文本传输协议(HTTP,HyperText Transfer Protocol)是用于从web服务器传输超文本到web浏览器的传送协议。所有的WWW文件都必须遵守这个标准这个
报文字段分为:
报文首部: 需要处理的内容和某些属性。在客户端和服务器处理时起至关重要作用的信息几乎都在这边
报文主体: 应该被发送的数据(不需要发送数据时可没有报文主体)所需要的用户和资源的信息都在这里
报文行为分为:
报文请求: 报文首部、请求行、请求首部、报文主体
请求行:请求方法 URL 版本及协议
首部字段:包含表示请求和响应的各种条件和属性的各种首部
响应报文: 报文首部、相应行、响应首部、报文主体
响应行:状态码 原因短语 协议及版本
首部字段:包含表示请求和响应的各种条件和属性的各种首部

常见状态码:
2XX 成功 响应结果表明请求被正常处理了。
200 OK 表示从客户端发来的请求在服务器端被正常处理了
3XX 重定向 响应结果表明浏览器需要执行某些特殊的处理以正确处理请求。
301 Moved Permanentl永久性重定向。该状态码表示请求的资源已被分配了新的 URI,以后应使用资源现在所指的 URI。
302 Found 临时性重定向。该状态码表示请求的资源已被分配了新的 URI,希望用户(本次)能使用新的 URI 访问
304
4XX 客户端错误 响应结果表明客户端是发生错误的原因所在
403 Forbidden该状态码表明对请求资源的访问被服务器拒绝了。
404 Not Foud 该状态码表明服务器上无法找到请求的资源。
5XX 服务器错误 的响应结果表明服务器本身发生错误。
500 Internal Server Error 该状态码表明服务器端在执行请求时发生了错误。
503 Service Unavailable 该状态码表明服务器暂时处于超负载或正在进行停机维护,现在无法处理请求
请求方式:
GET: 获取资源
POST: 传输主体内容
GET 和 POST请求比较相似,说一下他们的区别?
其实GET请求和POST请求本质上没有什么区别,因为他们底层都是TCP链接。
(1)那为什么GET请求参数要放到URL中,而POST要放到body里呢。只不过是在请求的时候,为了交互数据的时候能更清晰一些,HTTP协议规定GET要放到url中
(2)GET请求在URL中传送的参数是有长度限制的,而POST没有
一次传输数据量太大对浏览器和服务器都是很大负担。而且如果服务器不做处理的话,恶意攻击传入大量数据容易导致服务器崩溃。
(3)至于说POST请求比GET请求安全,那仅仅是因为get放到了url中而已
URL: 统一资源定义符
组成:
协议:http:/https
登录信息:用户名和密码从服务器获取资源师必要的登录信息。(可选)
域名:
http://www.chanke.com二级域名(也称子域名)
aa.bb.chanke.com 三级域名
com(商业机构) net(互联网服务的机构) org(非盈利组织) cn(中国) com.cn(中国商业机构)
端口:服务器连接的网络端口号(可省略。:80 :443)
协议及版本
HTML/1.0 非持久连接。但是通过非标准手段也可以实现持久连接
HTML/1.1 默认持久连接
PUT: 传输文件
DELETE: 删除文件
OPTIONS: 查询支持的方法
HEAD: 获得报文首部
四种首部字段:
通用首部字段:请求报文和响应报文两方都会使用的

请求首部字段:从客户端向服务器端发送请求报文时使用的首部。补充了请求的附加内容、客户端信息、 响应内容相关优先级等信息。
referer: 判断点击的来源,如果百度医院。
etag: 对每个资源的标记。用于用户如果资源更新则重新取,如果没有更新,重浏览器取。状态码304

响应首部字段:从服务器端向客户端返回响应报文时使用的首部。补充了响应的附加内容,也会要求客户端附加额外的内容信息

实体首部字段:针对请求报文和响应报文的实体部分使用的首部。补充了资源内容更新时间等与实体有关的信息。
