Http协议
来源:互联网 发布:asp.net php学那个好 编辑:程序博客网 时间:2024/06/08 12:21
HTTP协议
1. 什么是http协议?
协议:协议是一种双方约定好的规范,双方在做某一件事情的时候,必须按照事先定义好的规范去实现和操作。
HTTP:超文本传输协议,HyperText Transport Protocol,超文本在服务器与浏览器之间传输的时候必须遵循的协议。
2. 什么是html?
超文本标记语言:HyperText Markup Language
html的作用:保证同一数据在不同的电脑(用户),看到的效果一样。
HTTP协议工作原理
HTTP协议特点
1、支持客户/服务器模式:HTTP协议是为b/s而生,是基于web产生,http协议不仅限于b/s,凡是能够发出http请求的东西,都可以使用http协议访问服务器。
2、简单快速[只需请求方法和路径]:用户通过浏览器发起请求的时候:输入url即可
3、灵活[任意数据]:可以传输任意数据类型,不管是字符流还是二进制流
4、无连接[每次连接只处理一个请求]:当浏览器发起一次请求之后,服务器只能对当前请求产生一次响应,响应完就会关闭连接。
5、无状态[事务处理没有记忆能力]:同一个浏览器连续多次向服务器发起请求,服务器都不认识(可以使用从cookie解决无状态问题)
HTTP协议内容
HTTP协议根据参与者(客户端和服务器端)的参与方式分为两种:HTTP请求(Request)和HTTP响应(Response)
HTTP请求
HTTP请求分为4个部分:请求行,请求头,空行,请求数据,四个部分都是独立占行(\r\n)
请求行:请求方式 请求文件路径(URI) 协议版本
请求方式:GET/POST
请求文件的URI:域名后面的部分。/index.php
协议版本:HTTP/1.1
请求头:请求头是具体的协议内容的集合,每个单独的协议占一行,每一行分为两个部分:协议名:协议的内容
常见的请求头
host:主机名(域名),必要的
accept-encoding:允许服务器传送什么类型的数据,gzip
referer:请求来源
connection:连接状态,在请求结束之后,连接应该如何处理keep-alive
accept-language:能够接收的语言,cn,en
cookie:携带的保存在浏览器端的数据
user-agent:当前浏览器的内核信息
accept:可以接收的数据,text,image…
content-length(post):当前浏览器提交的数据的长度,
if-modified-since(get):当前浏览器本地有缓存,询问服务器被请求的脚本有没有更新
content-type(post):数据类型
空行:用于结束请求头(请求头不固定数量)
请求数据:POST请求的时候会有请求数据
完整HTTP请求
HTTP响应
服务器返回数据给浏览器的时候所遵循的规则。
HTTP响应包含四个部分:状态行,响应头,空行,响应体(消息体)
状态行:协议版本 状态码状态描述(HTTP/1.1 200 ok)
响应头:与请求头一致
常见的响应头如下:
server:服务器信息
date:响应的日期时间
last-modified:当前请求的文件的最后修改时间,与请求头中的if-modified-since
content-length:数据长度(字节)
content-type:数据类型,text/html,image/png
location:重定向,告诉浏览器,重新发起请求
refresh:刷新,指定时间后的重定向
content-encodeing:对应请求中的accept-encodeing
cache-control:缓存控制,告诉浏览器要不要对当前请求的数据进行缓存no-cached/cached
空行:用于结束响应头,用于区分响应头和数据(响应体)
响应体:html代码
- HTTP协议
- http协议
- HTTP协议
- HTTP协议
- HTTP协议
- http协议
- HTTP协议
- HTTP协议
- HTTP协议。。。
- HTTP协议
- HTTP协议
- HTTP协议
- HTTP协议
- HTTP协议
- http协议
- HTTP协议
- http协议
- HTTP协议
- UVALive4015-Cave(树形dp)
- ElasticSearch基本概念介绍(一)
- 教你实现简单的极光推送-Eclipse
- Java--继承与多态,抽象编程,接口与多态,接口回掉接口编程
- HDFS too many open files,fd limit的问题(二)
- Http协议
- Android安全之WebViewUXSS漏洞
- boost库的weak_ptr剖析
- 方法的定义
- 抽象类(abstract class)与接口(interface)的异同
- Linux常用命令学习总结(一)
- LeetCode 7. Reverse Integer
- HBase操作(Shell与Java API)
- HTML5新特性结合PHP实现多图片格式转换功能 欢迎讨论